火狐的跨域请求失败?

以下代码的域名已用 xxxx代替

Firefox 控制台的警告

已拦截跨源请求:同源策略禁止读取位于 xxxx 的远程资源。(原因:CORS 请求未能成功)。

问题出现的环境背景及自己尝试过哪些方法

Chrome 测试没有毛病,只有 Firefox 下会有错误报告而且无法成功请求。
通过搜索引擎搜索问题,设置过 Access-Control-Allow-Origin: * 等 header 也都没用。

PHP

header("Access-Control-Allow-Origin: xxxxx");
header("Access-Control-Allow-Credentials: true");

JS

/* 变量皆已赋值 */
$.ajax({
    type: "POST",
    url: url, 
    data: {
        'username': username,
        'c': c,
    },
    success: function (data) {
        console.log(data);
    },
    xhrFields: {
        withCredentials: true
    },
    crossDomain: true,
})
阅读 10.2k
1 个回答
新手上路,请多包涵

今天又继续搜索这个问题,终于找到了解决方法,我的问题解决了,现将解决方法写在下面。
我是在一条博客中找到的解决方向的,
博客地址:https://www.jianshu.com/p/292...
按博主所说跨域时Access-Control-Allow-Headers和Access-Control-Allow-Methods设置成*的话在firefox中无法解析,因为http规范是建议明确指出允许的 Headers 和 Methods。所以要使firefox能跨域访问需要明确指出这两项。
我根据自己的情况在后端代码中明确指出这两项后firefox就跨域成功了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏