【发布时间】:2017-05-19 11:27:22
【问题描述】:
我正在尝试使用 django-cors-middleware 在 Heroku 上托管的基于 Django 的 API 中允许跨域资源共享。我遵循了settings.py 中指定的设置,即:
INSTALLED_APPS = [
...
'corsheaders',
]
MIDDLEWARE_CLASSES = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'corsheaders.middleware.CorsMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
CORS_ORIGIN_ALLOW_ALL = True
CORS_ALLOW_CREDENTIALS = True
(我显示 'django.middleware.clickjacking.XFrameOptionsMiddleware' 是因为我在另一篇 SO 帖子中读到 django-cors-middleware 不适用于 clickjacking 中间件,但它似乎无法正常工作。)
我正在使用https://resttesttest.com 进行测试。当我提出请求时,它会吐出:Oh no! Javascript returned an HTTP 0 error. One common reason this might happen is that you requested a cross-domain resource from a server that did not include the appropriate CORS headers in the response
【问题讨论】:
-
能否请您完成 MIDDLEWARE_CLASSES 的所有代码...中间件的顺序很重要。想看看你在哪里有 CorsMiddleware
-
@ChirdeepTomar 已编辑。
-
一切似乎都很好...您可以尝试使用本地 javascript 文件吗?
标签: django heroku cors django-cors-headers