簡體   English   中英

在 Django 中啟用 CORS(跨源請求)

[英]Enabling CORS (Cross Origin Request) in Django

我正在嘗試在 Django 上運行的項目中使用帶有 JavaScript XMLHttpRequest 的立交橋 API http://wiki.openstreetmap.org/wiki/Overpass_API ,但我一直得到

 Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://www.google.com/accounts/ClientLogin. (Reason: CORS header 'Access-Control-Allow-Origin' missing). 

錯誤。 無論我是使用 GET 還是 POST,以及來自任何其他主機,而不僅僅是立交橋 API,我都會收到此錯誤。

我已經安裝了 django-cors-headers https://github.com/ottoyiu/django-cors-headers並按照那里的說明進行操作,將“corsheaders”放入 INSTALLED_APPS 和“corsheaders.middleware.CorsMiddleware”、“django.middleware” .common.CommonMiddleware',進入 MIDDLEWARE_APPS 並且我已經設置

CORS_ORIGIN_ALLOW_ALL = true 

在 settings.py 中,但似乎沒有任何效果。 我在本地運行它

python manage.py runserver

但我也在 openshift 上托管它。 這些工作都沒有,它們都給出了上面的錯誤。

如果我在這里遺漏了什么,請告訴我。

我在嘗試從我的筆記本電腦( localhost )訪問Heroku托管的Django Rest Framework API 時遇到了同樣的問題。 我正在使用Django 1.10.2DRF 3.4.7python v3.4

我做了pip install django-cors-headers (version 1.2.2) 並按照文檔的說明配置了它,然后又出現了同樣的錯誤:(

繼續搜索數小時,然后它擊中了我!

pip install django-cors-middleware (version 1.3.1)沒有卸載django-cors-headers包。 此外,我沒有觸及我的settings.py文件中的任何內容(它被配置為django-cors-headers設置,盡管這兩個包沒有太多區別 - 后者是第一個的分支)。

點擊刷新(來自本地主機),一切都運行良好!

我現在可以通過jQuery的 ajax方法從myapp.herokuapp.com獲取數據。

記得把 'corsheaders.middleware.CorsMiddleware' 放在列表的頂部,而且 'django.middleware.common.CommonMiddleware' 已經是一個標准的中間件

MIDDLEWARE = [
'corsheaders.middleware.CorsMiddleware',
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
 ]

CORS_ORIGIN_ALLOW_ALL = 真

應該是:

CORS_ORIGIN_ALLOW_ALL = 真

T大寫字母表示 True。 添加額外的必需中間件

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

並將“corsheaders”注冊到 INSTALLED_APPS。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM