来自“https://storage.googleapis.com”的字体已被跨源资源共享策略阻止加载

Posted

技术标签:

【中文标题】来自“https://storage.googleapis.com”的字体已被跨源资源共享策略阻止加载【英文标题】:Font from origin 'https://storage.googleapis.com' has been blocked from loading by Cross-Origin Resource Sharing policy 【发布时间】:2015-12-23 22:56:36 【问题描述】:

背景

我正在使用 Flask 和 Python 运行 Google App Engine。 我正在通过 https://storage.googleapis.com/* 调用 Google Cloud Storage 存储桶中的某些网络资产

根据以下证据,我可以验证请求中是否设置了 Access-Control-Allow-Originheader。

问题

那我的浏览器(chrome)中仍然出现以下错误。

来自“https://storage.googleapis.com”的字体已被阻止 通过跨域资源共享策略加载:否 请求中存在“Access-Control-Allow-Origin”标头 资源。因此不允许使用原点“http://localhost:8080” 访问。

代码

我正在使用Flask Snippet“HTTP 访问控制的装饰器”来设置来源,如下所示:

@admin_articles_routes.route('/xxx/xxx/xxx-xx')
@crossdomain(origin="*")
@authenticate_admin
def edit_article():

-------- 编辑-----------

Curl response
Vinays-MacBook-Pro:App-Engine vinay$ curl -version http://localhost:8080/xxxx/xxxx/xxxx-xxxx?ID=ahlkZXZ-Y2ZjLW1lbGJvdXJuZS13ZWJzaXRlcjbGUYgICAgICAgAoM
*   Trying ::1...
* connect to ::1 port 8080 failed: Connection refused
*   Trying 127.0.0.1...
* Connected to localhost (127.0.0.1) port 8080 (#0)
> GET /xxx/xxxx/xxxx-xxxxx?ID=ahlkZXZ-Y2ZjLW1lbGJvdXJuZS13ZWJzaXRlcjELEgdBcnRpY2xlIhBBcnRpY2xlR3JhZHBhS2V5DAsSB0FydGljbGUYgICAgICAgAoM HTTP/1.1
> Host: localhost:8080
> User-Agent: curl/7.43.0
> Accept: */*
> Referer: rsion
> 
< HTTP/1.1 302 Found
< access-control-max-age: 21600
< location: http://localhost:8080/_ah/login?continue=http%3A//localhost%3A8080/xxxx/xxxxx/xxxx-xxxxx%3FID%3DahlkZXZ-Y2ZjLW1lbGJvdXJuZS13ZWJzbGUYgICAgICAgAoM
< access-control-allow-origin: *
< access-control-allow-methods: HEAD, GET
< content-type: text/html; charset=utf-8
< Cache-Control: no-cache
< Expires: Fri, 01 Jan 1990 00:00:00 GMT
< Content-Length: 575
< Server: Development/2.0

【问题讨论】:

我看到了access-control-allow-origin,但没有看到Access-Control-Allow-Origin sn-p 代码的值是大写的。 h['Access-Control-Allow-Origin'] = 原点 所以你的意思是这个带有标题的响应图像是假的?那你可以展示一个真实的吗? 我不认为它是假的。我认为它的小写。代码库的标题为驼峰式。 但是在图片上不是驼峰式的,是不是带有真实标题的真实图片? 【参考方案1】:

这是 Greg 提供的最后一个答案的 Community Wiki post。

CORS Access-Control-Allow-Origin 标头应由接受请求的主机服务器返回,因为它是为谁可以访问自己的资源设置规则的服务器。

CORS OPTIONS preflight headers 将由发出请求的请求者设置,以便它正确地向主机服务器标识自己。

有关更多信息,您可以查看此附加信息Stack Overflow post。

【讨论】:

以上是关于来自“https://storage.googleapis.com”的字体已被跨源资源共享策略阻止加载的主要内容,如果未能解决你的问题,请参考以下文章

检查网络响应是来自服务器还是来自 Chrome 缓存

书评:男人来自火星,女人来自金星-约翰.格雷

为啥 WCF 服务能够处理来自不同进程的调用而不是来自线程的调用

来自 viewDidAppear 的 Segue 调用有效,但不是来自 viewWillAppear

求职作业帮 C++方向面经

来自 CWnd 的 ReleaseDC 覆盖来自 winuser 的 ReleaseDC