Django CORSとは
Django CORSはホスト側のAPIリソースを取り扱う、そしてセキュリティのメカニズムのことです。
このCORSが設定されていないと、アプリからDjangoAPIとコミュニケーションをしようとしてもエラーになってしまいます。
CORSをインストール
python -m pip install django-cors-headers
Settings,.pyの更新
INSTALLED_APPS = [ ... 'corsheaders', ... ]
ミドルウェアの更新
ここで注意したいのはCORSのラインが他のミドルウェアよりも先(上)に来るようにします。
MIDDLEWARE = [ ..., 'corsheaders.middleware.CorsMiddleware', 'django.middleware.common.CommonMiddleware', ..., ]
Allowed Originの設定
CORS_ALLOWED_ORIGINS = [ "https://domain.com", "https://api.domain.com", "http://localhost:8080", "http://127.0.0.1:9000" ]
CORS_ALLOW_METHODS
必要に応じてHTTPのリクエストのメソッドも制限できます。
CORS_ALLOW_METHODS = [ 'DELETE', 'GET', 'OPTIONS', 'PATCH', 'POST', 'PUT', ]
CORS_ALLOW_HEADERS
これも必要に応じてHTTPリクエストのヘッダーを制限できます。
CORS_ALLOW_HEADERS = [ 'accept', 'accept-encoding', 'authorization', 'content-type', 'dnt', 'origin', 'user-agent', 'x-csrftoken', 'x-requested-with', ]