Django RESTフレームワークでCORSを有効にするにはどうすればよいですか? referenceはあまり役に立ちませんが、私はミドルウェアで行うことができますが、どうすればいいですか?Django RESTフレームワークでCORSを有効にする方法
17
A
答えて
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のドキュメントを参照することもできます。
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
関連する問題
- 1. Django RESTフレームワーク+ Django REST Swagger + ImageField
- 2. Django RESTフレームワーク:非モデルシリアライザ
- 3. フレームワーク4.0でSSLメール設定を有効にする方法
- 4. django restフレームワークでHTMLエラーページの返却を無効にする方法はありますか?
- 5. Django RESTフレームワークのNullable ForeignKeyフィールド
- 6. Django Restフレームワークの認証エラー
- 7. Django RESTフレームワークのkeyerror UserSerializer
- 8. Django - SqLite3バックエンドで外部キーを有効にする方法
- 9. Django RESTフレームワーク:ユニットテストでHyperlinkedModelSerializerのURLフィールドを正しく使用する方法
- 10. Django RESTフレームワーク - オプションのフィールドをシリアライズ
- 11. mongoengineとdjango restフレームワークを取得するのが好きです
- 12. Django RESTフレームワーク:ビューとビューセットの違い?
- 13. Django RESTフレームワークのネストされたURLパターン
- 14. ApiキーとDjango Restフレームワーク認証トークン
- 15. Djangoの認証バックエンドとしてDjango RESTフレームワークを使用
- 16. 同期フレームワーク - 同期トランザクション内で一意のインデックスを有効または無効にする方法は?
- 17. BlackBerryでMDS-CSをバイパスする方法
- 18. .NETライブラリを有効にする方法
- 19. background:none - jQueryを有効にする方法?
- 20. .vimスクリプトを有効にする方法
- 21. SSLを有効にする方法
- 22. PHPロケールクラスを有効にする方法
- 23. ブートストラップ:スクロールバーを有効にする方法?
- 24. Tomcatバルブを有効にする方法
- 25. ボタンを有効にする方法は?
- 26. オプションを有効にする方法
- 27. カスタムコントロールを有効にする方法
- 28. サブバージョンマージトラッキングを有効にする方法
- 29. ToggleSwitch - テキストを有効にする方法?
- 30. ASP.netテーマを有効にする方法
はあなたを行います新しい依存関係をインストールする必要はありません。今すぐミドルウェアクラスを作成しようとしています –
@JulioMarins、なぜ12のリリース、21人の貢献者、800人以上のスター、100以上のフォークで、簡単にインストールして簡単にインストールできるのですか? – Chris
あなたは本当にポイントがありますが、シンプルなCORSが必要なのはヘッダー 'Access-Control-Allow-Origin:*'だけですから、なぜ全部を読み込むのか分からないので、別の方法で両方の方法が利用できるように、あなたの答え。参照:[リンク(] http:// enable-cors。org/server.html) –