在提取API django中请求的资源错误中不存在“ Access-Control-Allow-Origin”标头

时间:2018-11-20 16:42:16

标签: django cors

我正在尝试从API中获取一些数据。它可以正常工作,并且我的数据已发送到服务器,但出现以下错误消息,不允许我继续操作:

从CORS策略阻止从原点“ http://192.168.80.11:8000/upload/5bc4206e3ff2286d24c58899/”获取“ http://localhost:8000”的访问权限:

  

所请求的资源上没有“ Access-Control-Allow-Origin”标头。如果不透明的响应满足您的需求,请将请求的模式设置为“ no-cors”以在禁用CORS的情况下获取资源。

我知道这是因为我试图从本地主机中获取数据,并且解决方案应该使用CORS。 但是,如何在响应头中设置Access-Control-Allow-Origin? 我使用Django。 这是在服务器上设置文件:

INSTALLED_APPS = (
    ...
    'corsheaders',
    ...
)

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

]
CORS_ORIGINE_ALLOW_ALL= True
CORS_ALLOW_CREDENTIALS = True
#CORS_ORIGINE_ALLOW_ALL= False
CORS_ORIGINE_WHITELIST=(
    'http//:192.168.20.29:8000',
    'http//:192.168.20.30:8000',
    'http//:127.0.0.1:8000',
)

1 个答案:

答案 0 :(得分:0)

您是否已将此添加到已安装的应用程序中?

INSTALLED_APPS = (
    ...
    'corsheaders',
    ...
)

更新

CORS_ORIGIN_ALLOW_ALL不是CORS_ORIGINE_ALLOW_ALL

CORS_ORIGIN_WHITELIST不是CORS_ORIGINE_WHITELIST