重点 后台用的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');
下一篇:
thinkphp防止超卖
友情提示:垃圾评论一律封号...