【发布时间】: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'] = 原点
-
所以你的意思是这个带有标题的响应图像是假的?那你可以展示一个真实的吗?
-
我不认为它是假的。我认为它的小写。代码库的标题为驼峰式。
-
但是在图片上不是驼峰式的,是不是带有真实标题的真实图片?
标签: python google-chrome google-app-engine flask cors