php程序出现接口访问跨域的解决办法

全屏阅读
  • 基本信息

我们通常在进行接口调用时,会出现报错:

Access to XMLHttpRequest at ‘http:/xxxxxxxxxx from origin ‘http://xxxxxxxxxx’ has been blocked by CORS policy: No ‘Access-Control-Allow-Origin’ header is present on the requested resource.

遇到这个错误,其实是因为跨域了,那么什么是跨域访问呢?

我们通常在进行接口调用时,会出现报错:

Access to XMLHttpRequest at ‘http:/xxxxxxxxxx from origin ‘http://xxxxxxxxxx’ has been blocked by CORS policy: No ‘Access-Control-Allow-Origin’ header is present on the requested resource.

遇到这个错误,其实是因为跨域了,那么什么是跨域访问呢?

就是不同域名,端口之间相互调用数据,会出现验证失败的情况。

那么应该怎么解决跨域报错请求呢?其实很简单,在php中设置头就行。

header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Methods: POST, GET, OPTIONS, PUT, DELETE");
header('Access-Control-Allow-Headers:Origin,Content-Type,Accept,token,X-Requested-With,device');

同时借鉴其他答案,多域名实现跨域:

// 可跨域域名列表
$domains = [
'http://localhost:8080',
'http://test.qqqqq.cn',
];
$origin = isset($_SERVER['HTTP_ORIGIN']) ? $_SERVER['HTTP_ORIGIN'] : '';
if (in_array($origin, $domains)) {
header('Access-Control-Allow-Origin:' . $origin);
}
// 允许的请求头信息
header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Authorization");
//在请求头里加上需要允许的 header("Access-Control-Allow-Headers: Origin, 名称);
// 允许的请求类型
header('Access-Control-Allow-Methods: GET, POST, PUT,DELETE,OPTIONS,PATCH');
// 允许携带证书式访问(携带cookie)
header('Access-Control-Allow-Credentials:true');

顶一下
(0)
100%
订阅 回复
踩一下
(0)
100%
» 郑重声明:本文由mpxq168发布,所有内容仅代表个人观点。版权归恒富网mpxq168共有,欢迎转载, 但未经作者同意必须保留此段声明,并给出文章连接,否则保留追究法律责任的权利! 如果本文侵犯了您的权益,请留言。

目前有 0 条留言 其中:访客:0 条, 博主:0 条

给我留言

您必须 [ 登录 ] 才能发表留言!