相关疑难解决方法(0)

为什么这个CORS请求仅在Firefox中失败?

我正在使用凭据和预检请求实现CORS,我有点不知道为什么预检请求在Firefox 30中始终失败但在Safari(7.0.2)和Chrome 35中有效.我认为这个问题与" 为什么会这样做有所不同" 经过身份验证的CORS请求的预检OPTIONS请求在Chrome中运行但不在Firefox中运行? "因为我没有收到401,而是来自浏览器客户端的特定于CORS的消息:

"跨源请求被阻止:同源策略不允许在http://myurl.dev.com上读取远程资源.这可以通过将资源移动到同一域或启用CORS来解决."

没有显示源代码,这就是我正在做的事情:

在服务器上:

OPTIONS响应的标题:

  • Access-Control-Allow-Origin:[[来自请求的原点]]
  • 访问控制允许方法:"POST获取选项"
  • Access-Control-Allow-Headers:"X-Requested-With"
  • Access-Control-Allow-Credentials:"true"

POST响应的标题:

  • Access-Control-Allow-Origin:[[来自请求的原点]]
  • Access-Control-Allow-Credentials:"true"

在浏览器客户端中:

jQuery.ajax({
  url: requestUrl,
  type: 'POST',
  data: getData(),
  xhrFields: {
    withCredentials: true
  }
});
Run Code Online (Sandbox Code Playgroud)

根据规范,这将触发OPTIONS预检请求,该请求需要在其响应中具有CORS头.我已经多次阅读过W3C规范了,在预检响应中我无法确定我做错了什么,如果有的话.

firefox cors fetch-api

22
推荐指数
3
解决办法
3万
查看次数

标签 统计

cors ×1

fetch-api ×1

firefox ×1