开发期间没有Access-Control-Allow-Origin的CORS

Lau*_*ent 2 django cors

服务器应答Access-Control-Allow-Origin为生产设置的值.当请求来自我的开发服务器时,有没有办法允许?例如,是否有Django设置禁用跨源检查DEBUG=True

我无法修改Access-Control-Allow-Origin.请求是使用jquery ajax函数完成的.

编辑:

我已经安装了https://github.com/ottoyiu/django-cors-headerspip install django-cors-headers,添加下面的我settings.py

if DEBUG:
    INSTALLED_APPS += ('corsheaders', )

CORS_ORIGIN_ALLOW_ALL = DEBUG
Run Code Online (Sandbox Code Playgroud)

并把中间件:

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',
...
}
Run Code Online (Sandbox Code Playgroud)

但我仍然得到错误:

阻止跨源请求:同源策略禁止在_request_url_读取远程资源.(原因:缺少CORS标题'Access-Control-Allow-Origin').

如果我检查响应头,我没有看到任何Access-Control-Allow-Origin参数.

Sai*_*r S 7

安装中间件:https://github.com/ottoyiu/django-cors-headers

在django settings.py中添加以下设置:

DEBUG=True

CORS_ORIGIN_ALLOW_ALL = DEBUG

(如果DEBUG为true Access-Control-Allow-Origin将被添加到标题中以作响应)


Asw*_*esh 4

要将 CORS 标头添加到您的响应中,请将其安装到您的 django 项目中:

https://github.com/ottoyiu/django-cors-headers

由于您想从本地连接,因此无法单独将特定主机列入白名单。

要仅在具有 时启用 CORS DEBUG=True,您可以仅在 Debug 为 True 时将 corsheaders 添加到已安装的应用程序:

if DEBUG is True:
     INSTALLED_APPS += ('corsheaders', )
Run Code Online (Sandbox Code Playgroud)