php前后端分离两个域名访问,php前后端分离项目跨域问题

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

上篇文章:教程