首页 > 解决方案 > 添加 self.response.headers['Access-Control-Allow-Origin'] = '*' 不会做任何事情。webapp2

问题描述

这是我的主页功能:

class Home(webapp2.RequestHandler):
    def get(self): 
        self.response.headers.add_header('Access-Control-Allow-Origin', '*')
        self.response.headers.add_header('Access-Control-Allow-Headers', 'Authorization')
        self.response.headers.add_header('Access-Control-Allow-Methods', 'POST, GET, PUT, DELETE')
        homepage = the_jinja_env.get_template('/template/mosaic.html')  
        self.response.write(homepage.render({"data":getData()}))

应用程序.yaml

- url: .*
  script: main.app

这是我得到的错误:

Access to image at 'https://storage.googleapis.com/mosaictestlayer1/1' from origin 'http://fortest099.appspot.com' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

如果它对我有更多帮助,这里是网站:http: //fortest099.appspot.com/

标签: google-app-enginecors

解决方案


在 App Engine 响应上启用 CORS 的正确方法是在 app.yaml 中的“处理程序”元素下定义标头。请参阅文档示例:

handlers:
- url: /images
  static_dir: static/images
  http_headers:
    Access-Control-Allow-Origin: http://mygame.appspot.com

如果您要从 Cloud Storage XML API 检索图像,则必须在存储桶级别启用 CORS


推荐阅读