重点 后台用的session保存数据(项目非常非常小)

遇到一个问题,前端调用登录api,访问其它api获取不到session的值,null


ajax请求无法获取header、cookie等信息。但是后来发现有更方便的解决方法。jquery的ajax请求中可以设置下面两个参数,浏览器会自动帮你保存、发送这些header信息

  1. xhrFields: { withCredentials: true },
  2. crossDomain: true,

实例

  1. $.ajax({
  2.     url: "url",   //请求的url地址
  3.     dataType: "json", //返回格式类型为json  可选参数(jsonp,html,xml,text,script,json  
  4.     xhrFields: { withCredentials: true },//需要设置的参数
  5.     crossDomain: true,//需要设置的参数
  6.     async: true, //请求是否异步,默认为true:异步,这也是ajax重要特性  可不写该参数
  7.     type: "post",          //请求方式类型(put,delete,post,get)    data: { },     
  8.     beforeSend: function() {        //请求前的处理操作    },
  9.     success: function(data,textStatus) { //此处data为返回值
  10.         //请求成功时处理操作    },
  11.     complete: function() {        //请求完成的处理操作    },
  12.     error: function() {        //请求出错处理操作    }
  13. });

后端则需要设置请求头

  1. $origin = isset($_SERVER['HTTP_ORIGIN'])? $_SERVER['HTTP_ORIGIN'] : '';
  2. // 允许所有跨域请求,测试用,生产环境请使用具体域名代替
  3. header('Access-Control-Allow-Origin:'.$origin);
  4. header('Access-Control-Allow-Credentials:true');
相关评论(0)
您是不是忘了说点什么?

友情提示:垃圾评论一律封号...

还没有评论,快来抢沙发吧!