相关疑难解决方法(0)

Access-Control-Allow-Origin多个源域?

有没有办法允许多个跨域使用Access-Control-Allow-Origin标头?

我知道了*,但它太开放了.我真的想只允许一些域名.

举个例子,像这样:

Access-Control-Allow-Origin: http://domain1.example, http://domain2.example
Run Code Online (Sandbox Code Playgroud)

我已经尝试过上面的代码,但它似乎不适用于Firefox.

是否可以指定多个域,或者我只坚持一个?

.htaccess http xmlhttprequest cross-domain cors

985
推荐指数
17
解决办法
74万
查看次数

对于成功的同源请求,提取将引发“ TypeError:提取失败”

使用单页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

javascript fetch

8
推荐指数
1
解决办法
3339
查看次数