我已使用以下代码在我的Google App Engine Python应用程序上实现了CORS:
approved_origin = 'https://example.com'
self.response.headers.add_header('Access-Control-Allow-Origin', approved_origin)
问题是我可以允许多个已批准的来源,并且希望同时允许http和https。
有谁知道是否可以这样做,如果是,那么语法是什么?我不想要允许所有来源'*'。
答案 0 :(得分:5)
如果当前请求来自已批准的来源,则必须保留允许来源的白名单并包含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'])
答案 1 :(得分: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响应标头中回显原始值。