2016-11-23 8 views
0

プロダクション用にAccess-Control-Allow-Origin値を設定したサーバーの応答。要求が私の開発サーバーから来たときに許容される方法はありますか? DEBUG=Trueのようなクロスオリジンチェックを無効にするDjangoの設定はありますか?アクセス制御なし許可なしで開発中のCORS

Access-Control-Allow-Originは変更できません。リクエストはjquery ajax関数で行われます。

EDIT:

私はpip install django-cors-headershttps://github.com/ottoyiu/django-cors-headersをインストールして、私のsettings.py

if DEBUG: 
    INSTALLED_APPS += ('corsheaders',) 

CORS_ORIGIN_ALLOW_ALL = DEBUG 

とミドルウェアを置くには、以下を追加しました:

MIDDLEWARE_CLASSES = [ 
    'django.contrib.sessions.middleware.SessionMiddleware', 
    'django.middleware.locale.LocaleMiddleware', 
    'corsheaders.middleware.CorsMiddleware', 
    'django.middleware.common.CommonMiddleware', 
    'django.middleware.csrf.CsrfViewMiddleware', 
    'django.contrib.auth.middleware.AuthenticationMiddleware', 
    'django.contrib.auth.middleware.SessionAuthenticationMiddleware', 
    'django.contrib.messages.middleware.MessageMiddleware', 
    'django.middleware.clickjacking.XFrameOptionsMiddleware', 
... 
} 

しかし、私はまだエラーが表示されます。

クロスオリジン要求がブロックされました:同じオリジンポリシーにより、_request_url_でリモートリソースを読み取ることができません。 (理由:CORSヘッダー「Access-Control-Allow-Origin」がありません)。

レスポンスヘッダーを調べると、Access-Control-Allow-Originパラメータが表示されません。

https://github.com/ottoyiu/django-cors-headers

ローカルから接続したいので、あなただけでは、特定のホストをホワイトリストに登録することはできません:、あなたの応答にCORSヘッダを追加するには、Djangoプロジェクトにこれをインストールするには

+0

ご質問へのあなたのDjangoのバージョンを追加していただけますか? –

答えて

1

if DEBUG is True: 
    INSTALLED_APPS += ('corsheaders',) 
+0

私の編集した質問 – Laurent

3

は、ミドルウェアをインストールします:あなたはDEBUG=Trueを持っているときにのみ、あなたはデバッグがTrueの場合にのみ、インストールしたアプリにcorsheadersを追加することができますCORSを有効にするには

Djangoのsettings.pyでhttps://github.com/ottoyiu/django-cors-headers

には、以下の設定を追加:

DEBUG=True

CORS_ORIGIN_ALLOW_ALL = DEBUG

DEBUGがtrueの場合Access-Control-Allow-Originが応答でヘッダに追加されます)

+0

私の編集した質問を参照してください – Laurent

+0

また、 'CORS_ORIGIN_ALLOW_ALL = True'を追加するか、またはsettings.pyにホワイトリストURLのセットを与える必要があります デバッグ目的でのみ有効にする場合は、デバッグフラグ条件チェック –

関連する問題