龙行博客

走路看风景,经历看人生,岁月留痕迹,人生留轨迹,17的历史,18的豪情,时间的匆忙,人生的风景,放开心胸往前走,成功再远行,放开理想往前走,梦想再行动。
现在位置:首页 > 编程语言 > PHP > php前后端分离项目跨域问题

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

龙行    PHP    2020-1-17    237    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
  • 上篇文章:shadowsock一键脚本并赋予执行权限
  • 下篇文章:thinkphp6 excel数据导入数据库
  • php php7 tp6 thinkphp6
挤眼 亲亲 咆哮 开心 想想 可怜 糗大了 委屈 哈哈 小声点 右哼哼 左哼哼 疑问 坏笑 赚钱啦 悲伤 耍酷 勾引 厉害 握手 耶 嘻嘻 害羞 鼓掌 馋嘴 抓狂 抱抱 围观 威武 给力
提交评论

清空信息
关闭评论
萧瑟
萧瑟2020-03-10 22:17回复
#2
总结的不错。不过我记得ajax请求好像可以传递header数据。
今日新闻
今日新闻2020-02-22 23:22回复
#1
文章不错非常喜欢
快捷导航
联系博主
在线壁纸
给我留言
四四五五
音乐欣赏
返回顶部