服务器回答为生产设置了Access-Control-Allow-Origin
值。当请求来自我的开发服务器时,有没有办法允许?是否有Django设置可以在DEBUG=True
时禁用跨源检查?
我无法修改Access-Control-Allow-Origin
。请求是使用jquery ajax函数完成的。
编辑:
我已使用pip install django-cors-headers
安装了https://github.com/ottoyiu/django-cors-headers,在settings.py
if DEBUG:
INSTALLED_APPS += ('corsheaders', )
CORS_ORIGIN_ALLOW_ALL = DEBUG
并放置中间件:
MIDDLEWARE_CLASSES = [
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.locale.LocaleMiddleware',
'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',
...
}
但我仍然得到错误:
阻止跨源请求:同源策略禁止在_request_url_读取远程资源。 (原因:缺少CORS标题'Access-Control-Allow-Origin'。)
如果我检查了响应标头,我就看不到任何Access-Control-Allow-Origin
参数。
答案 0 :(得分:6)
安装中间件:https://github.com/ottoyiu/django-cors-headers
在django settings.py中添加以下设置:
DEBUG=True
CORS_ORIGIN_ALLOW_ALL = DEBUG
(如果DEBUG
为真Access-Control-Allow-Origin
将被添加到回复标题中
答案 1 :(得分:1)
要将CORS标头添加到您的响应中,请将其安装到您的django项目中:
https://github.com/ottoyiu/django-cors-headers
由于您希望从本地连接,因此无法单独将特定主机列入白名单。
要仅在DEBUG=True
时启用CORS,只有在Debug为True时才能为已安装的应用添加corsheaders:
if DEBUG is True:
INSTALLED_APPS += ('corsheaders', )