django&javascript fetch():CORS策略:不存在“访问控制允许来源”标头
我正在尝试打一个ajax电话。我正在使用django 2.2.5和cors 3.1.0,但在浏览器控制台中收到以下错误消息: 索引:1从原点获取的访问权限 已被CORS策略阻止:否 “Access Control Allow Origin”标头出现在请求的服务器上 资源如果不透明的响应满足您的需要,请设置请求的 模式设置为“无cors”,以获取禁用cors的资源 索引:798 GET net::ERR_失败 跨源读取阻塞CORB阻塞跨源响应 使用MIME类型text/plain。看见 更多 细节 我的ajax调用如下所示:django&javascript fetch():CORS策略:不存在“访问控制允许来源”标头,javascript,python,django,ajax,cors,Javascript,Python,Django,Ajax,Cors,我正在尝试打一个ajax电话。我正在使用django 2.2.5和cors 3.1.0,但在浏览器控制台中收到以下错误消息: 索引:1从原点获取的访问权限 已被CORS策略阻止:否 “Access Control Allow Origin”标头出现在请求的服务器上 资源如果不透明的响应满足您的需要,请设置请求的 模式设置为“无cors”,以获取禁用cors的资源 索引:798 GET net::ERR_失败 跨源读取阻塞CORB阻塞跨源响应 使用MIME类型text/plain。看见 更多 细节
setInterval(function() {
fetch('http://my.domain.com/')
.then(response => response.json())
.then(json => myHtmlTag.innerText = json.data)
}, 5000 );
我已经安装了django cors Header和我的django settings.py,看起来像这样,但它无论如何都不起作用:
CORS_ORIGIN_WHITELIST = [
'http://my.domain.com/',
]
CSRF_TRUSTED_ORIGINS = [
'http://my.domain.com/',
]
CORS_ALLOW_HEADERS = [
'accept',
'accept-encoding',
'authorization',
'content-type',
'dnt',
'origin',
'user-agent',
'x-csrftoken',
'x-requested-with',
]
INSTALLED_APPS = [
'corsheaders',
...
]
MIDDLEWARE = [
'corsheaders.middleware.CorsMiddleware',
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
...
]
如果我使用例如失眠测试服务器,则从服务器获得的原始响应数据为:
{"data":"0123456789"}
您必须在允许的来源中添加请求者。在您的情况下,您应该添加,您必须在允许的来源中添加请求者。在您的情况下,您应该添加,您可以查看CORS如何在您的浏览器上工作 在您的情况下,您可以将CORS_ORIGIN_白名单更改为:
你可以看看CORS是如何在你的浏览器上工作的 在您的情况下,您可以将CORS_ORIGIN_白名单更改为:
试试这个,看看它是否正常:CORS\u ORIGIN\u ALLOW\u ALL=TrueSet CORS\u ORIGIN\u ALLOW\u ALL=True,清除缓存,仍然是相同的错误。您还可以提供日志吗?因为如果API响应带有错误状态代码,那么请求的资源错误上仍然没有“Access Control Allow Origin”头,您需要什么类型的日志?我已经更新了错误消息,这是我从浏览器中得到的信息,似乎这不是CORS问题,而是http://sub.example.com/. 你确定吗http://sub.example.com/ 是否正常工作?请尝试此选项以查看是否正常工作:CORS\u ORIGIN\u ALLOW\u ALL=TrueSet CORS\u ORIGIN\u ALLOW\u ALL=True,已清除缓存,仍然是相同的错误。您还可以提供日志吗?因为如果API响应带有错误状态代码,那么请求的资源错误上仍然没有“Access Control Allow Origin”头,您需要什么类型的日志?我已经更新了错误消息,这是我从浏览器中得到的信息,似乎这不是CORS问题,而是http://sub.example.com/. 你确定吗http://sub.example.com/ 工作正常吗?
CORS_ORIGIN_WHITELIST = [
'http://127.0.0.1:8000',
'http://any.host.want.to.allow.to.access.this.server.com',
]