我想通过XML HTTP请求(XHR,AJAX)访问第三方资源(在另一个域上)。
我按如下方式设置CORS(两侧 - 目标和原点):
Access-Control-Allow-Origin: http://www.example.com, https://www.example.com, http://www.example.org, https://www.example.org
Access-Control-Allow-Methods: GET, POST, HEAD, OPTIONS
Chrome,Firefox和Internet Explorer在https://www.example.org/foo上调用XHR时将其拒绝为http://www.example.com/bar。
最详细的错误消息来自Firefox:
XMLHttpRequest无法加载https://www.example.org/foo。 ' Access-Control-Allow-Origin'标头包含多个值&{39; http://www.example.com,https://www.example.com,http://www.example.org,https://www.example.org',但只允许一个。起源' http://www.example.com'因此不允许访问。
这个错误让我非常困惑。它就像"嘿,你是A,想和B交谈,但B只接受A,B。所以你不能和B"交谈。 WTF?
如何正确实施CORS(Access-Control-Allow-Origin)?
答案 0 :(得分:2)
Access-Control-Allow-Origin
只接受*
或单来源。
如果您想支持多个来源而不是所有来源,那么您必须:
Origin
request header Access-Control-Allow-Origin
响应标题