2016-03-03 9 views

答えて

25

あなたはあなたの質問で参照リンクはそのdocumentationライブラリ

pip install django-cors-headers 

をインストールしてからインストールしたアプリに追加すると言うdjango-cors-headersを、使用することをお勧めします:

INSTALLED_APPS = (
    ... 
    'corsheaders', 
    ... 
) 

あなたはまた、意志レスポンスを聞くためにミドルウェアクラスを追加する必要があります:

MIDDLEWARE_CLASSES = (
    ... 
    'corsheaders.middleware.CorsMiddleware', 
    'django.middleware.common.CommonMiddleware', 
    ... 
) 

the configuration sectionのドキュメントを参照することもできます。

+0

はあなたを行います新しい依存関係をインストールする必要はありません。今すぐミドルウェアクラスを作成しようとしています –

+1

@JulioMarins、なぜ12のリリース、21人の貢献者、800人以上のスター、100以上のフォークで、簡単にインストールして簡単にインストールできるのですか? – Chris

+0

あなたは本当にポイントがありますが、シンプルなCORSが必要なのはヘッダー 'Access-Control-Allow-Origin:*'だけですから、なぜ全部を読み込むのか分からないので、別の方法で両方の方法が利用できるように、あなたの答え。参照:[リンク(] http:// enable-cors。org/server.html) –

5

ベスト・オプションがパッケージdjango-cors-headersのテスト済みのアプローチを使用していても、カスタム・ミドルウェアを使用して行うことができます。 myapp/middleware/__init__.py

from corsMiddleware import corsMiddleware 

- - myapp/middleware/corsMiddleware.py

class corsMiddleware(object): 
    def process_response(self, req, resp): 
     resp["Access-Control-Allow-Origin"] = "*" 
     return resp 

に追加

次のような構造とファイルを作成します。ということで、ここでのソリューションですsettings.pyマークされた行:

MIDDLEWARE_CLASSES = (
    "django.contrib.sessions.middleware.SessionMiddleware", 
    "django.middleware.common.CommonMiddleware", 
    "django.middleware.csrf.CsrfViewMiddleware", 

    # Now we add here our custom middleware 
    'app_name.middleware.corsMiddleware' <---- this line 
) 
1
pip install django-cors-headers 

してからインストールしたアプリに追加:

INSTALLED_APPS = (
    ... 
    'corsheaders', 
    ... 
) 

ます。また、レスポンスを盗聴するミドルウェアクラスを追加する必要があります。

MIDDLEWARE_CLASSES = (
    ... 
    'corsheaders.middleware.CorsMiddleware', 
    'django.middleware.common.CommonMiddleware', 
    ... 
) 

CORS_ORIGIN_ALLOW_ALL = True 
CORS_ALLOW_CREDENTIALS = True 
CORS_ORIGIN_WHITELIST = (
    'localhost:3030', 
) 
CORS_ORIGIN_REGEX_WHITELIST = (
    'localhost:3030', 
) 

詳細:https://github.com/ottoyiu/django-cors-headers/#configuration

は、公式ドキュメントは、誰もが戻ってこの質問に取得し、独自のミドルウェアを書くために決定された場合には、ほぼすべての問題

3

を解決することができます読んで、これはDjangoの新しいスタイルのミドルウェアのコードサンプルです -

class CORSMiddleware(object): 
    def __init__(self, get_response): 
     self.get_response = get_response 

    def __call__(self, request): 
     response = self.get_response(request) 
     response["Access-Control-Allow-Origin"] = "*" 

     return response 
関連する問題