H5W3
当前位置:H5W3 > php > 正文

【php】火狐的跨域请求失败?

以下代码的域名已用 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就跨域成功了。

本文地址:H5W3 » 【php】火狐的跨域请求失败?

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址