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