sun-narumi
@sun-narumi (なるみ)

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

djangoのapiでdjango-cors-headersを使ってもAccess-Control-Allow-Originが反映されない

解決

CORS_ALLOW_ALL_ORIGINS = TrueをCORS_ORIGIN_ALLOW_ALL = Trueにしたらうまくいきました。
Anacondaでインストールしたからかもしれませんが、変更前の書き方は最新のものなのですが反映されていなかったようです。

概要

Djangoを使ってフロントエンドからデータを取得できるWebAPIを作ろうと思い、
https://qiita.com/sand/items/80a67da0a44b042f0bc3 などの記述に基づいてdjango-cors-headersをインストールし、書いてあることを写経してみたのですが、フロントエンド側のサーバーのオリジンがAccess-Control-Allow-Originで設定されていないというエラーが出ました。実際にHTTPレスポンスヘッダを見てみても、Access-Control-Allow-Originの欄はありませんでした。原因が分かる人がいらしたら教えていただきたいです。

環境

django : ver3.0.3
django-cors-headers : ver3.4.0
djangorestframework : ver3.11.1

コード

djangobackend/djangobackend/settings.py
INSTALLED_APPS = [
  ...
  'corsheaders',
  'rest_framework',
  ...
]

MIDDLEWARE = [
  'corsheaders.middleware.CorsMiddleware',
  'django.middleware.common.CommonMiddleware',
  ...
]

CORS_ALLOW_ALL_ORIGINS = True

0

1Answer

Your answer might help someone💌