php前后端分离项目跨域问题
龙行 PHP 2020-1-17 1218 2评论
重点 后台用的session保存数据(项目非常非常小)
遇到一个问题,前端调用登录api,访问其它api获取不到session的值,null
ajax请求无法获取header、cookie等信息。但是后来发现有更方便的解决方法。jquery的ajax请求中可以设置下面两个参数,浏览器会自动帮你保存、发送这些header信息xhrFields: { withCredentials: true },
crossDomain: true,
实例$.ajax({
url: "url", //请求的url地址
dataType: "json", //返回格式类型为json 可选参数(jsonp,html,xml,text,script,json
xhrFields: { withCredentials: true },//需要设置的参数
crossDomain: true,//需要设置的参数
async: true, //请求是否异步,默认为true:异步,这也是ajax重要特性 可不写该参数
type: "post", //请求方式类型(put,delete,post,get) data: { },
beforeSend: function() { //请求前的处理操作 },
success: function(data,textStatus) { //此处data为返回值
//请求成功时处理操作 },
complete: function() { //请求完成的处理操作 },
error: function() { //请求出错处理操作 }
});
后端则需要设置请求头$origin = isset($_SERVER['HTTP_ORIGIN'])? $_SERVER['HTTP_ORIGIN'] : '';
// 允许所有跨域请求,测试用,生产环境请使用具体域名代替
header('Access-Control-Allow-Origin:'.$origin);
header('Access-Control-Allow-Credentials:true');
评论一下
赞助站长
赞助站长X
版权申明:此文如未标注转载均为本站原创,自由转载请表明出处《龙行博客》。
本文网址:https://www.liaotaoo.cn/324.html
上篇文章:教程