GAE上的CORS - 多个来源

4 投票
2 回答
1178 浏览
提问于 2025-05-10 15:48

我在我的Google App Engine Python应用上实现了跨域资源共享(CORS),用的是这段代码:

    approved_origin = 'https://example.com'
    self.response.headers.add_header('Access-Control-Allow-Origin', approved_origin)

现在的问题是,我想允许多个被批准的来源,并且希望同时支持http和https。

有没有人知道这能不能做到,如果可以的话,具体的写法是什么?我想用'*'来允许所有来源。

相关文章:

  • 暂无相关问题
暂无标签

2 个回答

0

补充一下:https://stackoverflow.com/a/14006226/3203254

CORS(跨源资源共享)规范是全有或全无的。它只支持 *, null 或者完全匹配的域名:http://www.w3.org/TR/cors/#access-control-allow-origin-response-header

你的服务器需要使用正则表达式来验证来源头信息,然后你可以在 Access-Control-Allow-Origin 的响应头中返回这个来源的值。

7

你需要维护一个允许的来源白名单,如果当前的请求来自一个被批准的来源,就要加上CORS头信息。可以参考下面的代码:

approved_origins = ['https://example.com', 'https://example.info']
if self.request.headers['Origin'] in approved_origins:
  self.response.headers.add_header('Access-Control-Allow-Origin', self.request.headers['Origin'])

撰写回答