最近升级了Chrome,我收到以下错误:
来自“http://storage.googleapis.com”的字体已被跨源资源共享策略阻止加载:否 请求中存在“Access-Control-Allow-Origin”标头 资源。因此,不允许原点“http://example.com”访问。
从Django中的html模板调用以下内容时:
<link title="fonts" href="https://fonts.googleapis.com/css?family=PT+Sans:400,700" rel="stylesheet" type="text/css">
我意识到这是一个CORS问题(它在Safari上完全可以在字体上强制执行CORS)所以安装了django-cors-headers,并允许所有主机但错误仍然存在。这是我唯一的CORS问题而且相当令人沮丧,因为该应用程序已经在Safari和Chrome(我们使用的唯一浏览器)上完美运行了好几个月!
非常感谢任何帮助。
答案 0 :(得分:1)
根据具体情况,有几种方法可以解决这个问题,但我认为这三种方法是最常见的解决方案:
<强> 1。 [Google Cloud]在存储桶中配置CORS
gsutil cors set cors-json-file.json gs://example
其中 cors-json-file.json 是您的CORS配置文件:
[
{
"origin": ["http://example.appspot.com"],
"responseHeader": ["Content-Type"],
"method": ["GET", "HEAD", "DELETE"],
"maxAgeSeconds": 3600
}
]
<强> 2。 [Nginx] Force Access-Control-Allow-Origin
转到 / etc / nginx / sites-available / [your_server_config] 并将此行添加到您的服务器块中:
add_header Access-Control-Allow-Origin *;
更多: https://serverfault.com/questions/162429/how-do-i-add-access-control-allow-origin-in-nginx
第3。 [Django-cors]为Django响应添加CORS头。
检查出来: