赣南脐橙

keybr

佰草伐

导航

php前后端分离项目跨域问题

重点 后台用的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');

  

posted on 2020-06-05 15:43  佰草伐  阅读(112)  评论(0)    收藏  举报

keybr

php基础知识

Wood Furniture