来自“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-Origin
header。
问题
那我的浏览器(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”的字体已被跨源资源共享策略阻止加载的主要内容,如果未能解决你的问题,请参考以下文章
为啥 WCF 服务能够处理来自不同进程的调用而不是来自线程的调用