使用Google字体的Chrome上的CORS错误

时间:2014-10-04 05:00:01

标签: django google-chrome cors

最近升级了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(我们使用的唯一浏览器)上完美运行了好几个月!

非常感谢任何帮助。

1 个答案:

答案 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
    }
]
  

更多: https://cloud.google.com/storage/docs/cross-origin

<强> 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头。

检查出来: