在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
现在项目越来越流行前后端分离,但最近在前后端分离的项目中遇到一个问题,获取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() { //请求出错处理操作 } }); PHP端则需要设置header头 $origin = isset($_SERVER['HTTP_ORIGIN'])? $_SERVER['HTTP_ORIGIN'] : ''; // 允许所有跨域请求,测试用,生产环境请使用具体域名代替 header('Access-Control-Allow-Origin:'.$origin); header('Access-Control-Allow-Credentials:true');
----------来源:https://www.cnblogs.com/alone-hy/p/11949754.html |
2022-08-30
2022-08-17
2022-11-06
2022-07-18
2022-08-18
请发表评论