有没有办法允许多个跨域使用Access-Control-Allow-Origin标头?
我知道了*,但它太开放了.我真的想只允许一些域名.
举个例子,像这样:
Access-Control-Allow-Origin: http://domain1.example, http://domain2.example
Run Code Online (Sandbox Code Playgroud)
我已经尝试过上面的代码,但它似乎不适用于Firefox.
是否可以指定多个域,或者我只坚持一个?
使用单页JavaScript应用程序进行提取请求时,我们遇到了不一致的客户端错误。值得注意的是,它们都是相同来源的请求。
let request = new Request(url, options);
...
window.fetch(request)
.then(response => response.json())
.then(data => ...)
.catch(error => ...)
Run Code Online (Sandbox Code Playgroud)
尽管服务器和浏览器收到200 OK响应,但仍有大约5%的承诺被拒绝并出现以下错误:
TypeError: Failed to fetch
Run Code Online (Sandbox Code Playgroud)
我很困惑...我所有的搜索都引发了有关CORS错误的讨论。鉴于这些都是相同来源的请求,因此似乎并不适用。是什么原因导致访存抛出TypeError?
我可以使用Chrome DevTools中的“网络”标签来确认获取请求已完成,其中包含200 OK响应和有效的JSON。我还可以确认网址是相同来源的。我还可以确认没有CORS飞行前请求。我已经在Chrome 66和Safari 11.1上重现了此问题。但是,我们收到了来自Chrome和Safari版本(台式机和移动版)的一系列错误报告。
编辑:
这似乎不是链接问题的重复项,因为我们没有发送CORS请求,也没有设置mode: "no-cors",也没有设置Access-Control-Allow-Origin标题。
此外,我使用mode: 'same-origin'明确设置的选项重新运行了测试。请求(仍然)成功;但是,我们(仍然)收到间歇性信号TypeError。