django&javascript fetch():CORS策略:不存在“访问控制允许来源”标头

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。看见 更多 细节

我正在尝试打一个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调用如下所示:

    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',
]