最新消息:文章中包含代码时,请遵守代码高亮规范!

php跨域请求处理【原创】

杂项 Alex 210浏览 0评论
最近与前端对接,PHP需要做跨域处理,解决如下:
注意:
1.session跨域时Access-Control-Allow-Credentials需设置为true
2.跨域时会存在HTTP_ORIGIN ,通过其是否存在判断是否是跨域请求
3.session跨域访问ajax请求时需加入xhrFields: {withCredentials: true}

基类构造函数中写入代码如下

//跨域访问的时候才会存在此字段
$origin = isset($_SERVER['HTTP_ORIGIN']) ? $_SERVER['HTTP_ORIGIN'] : '';
header("Content-Type: text/html; charset=utf-8");

if(!empty($origin)){
$allow_origin = array(
'http://offer.net199.com',
'http://www.wowoguanjia.com',
'http://localhost:8085',
'http://pd753.b.yayuanzi.com'
);

if(in_array($origin, $allow_origin)) {
header('Access-Control-Allow-Origin:'.$origin);
}else{
header('Access-Control-Allow-Origin:http://www.wowoguanjia.com');
}

//session跨域需设置未true 且Access-Control-Allow-Origin不能未*
header('Access-Control-Allow-Credentials:true');

header('P3P: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"');

}else{
header('Access-Control-Allow-Origin:*');
}

// 响应类型
header("Access-Control-Allow-Methods: GET,POST,PUT,DELETE,PATCH,OPTIONS");
// 响应头设置
header('Access-Control-Allow-Headers:x-requested-with,Content-Type, Accept, Authorization');

转载时请注明出处及相应链接,本文永久地址:https://blog.yayuanzi.com/24511.html


pay_weixin
pay_weixin
微信打赏
pay_weixin
支付宝打赏
感谢您对作者Alex的打赏,我们会更加努力!    如果您想成为作者,请点我

您必须 登录 才能发表评论!