技术饭

thinkphp5.1下ajax跨域请求接口,session公用的解决方法

copylian    0 评论    14954 浏览    2018.12.25

thinkphp5.1下ajax跨域请求接口,session公用的解决方法,ajax或者app(IOS、安卓)请求接口,php中如果需要登录,则需要设置session,但每一次请求都会重新生成一个session_id,所以session就没法获取跟传递,解决的办法就是生成一个随机数做为session_id,保存这个随机数,每次请求都带上这个随机数,这样每次获取的session就一致了:

1、设置PHP头部

// 指定允许其他域名访问

header('Access-Control-Allow-Origin:*');

// 跨域资源共享

header('Access-Control-Allow-Credentials:true');

// 响应头设置

header('Access-Control-Allow-Headers:x-token,x-uid,x-token-check,x-requested-with,content-type,Host,xmsid');

// 响应类型

header('Access-Control-Allow-Methods:*');

参考:https://www.copylian.com/technology/189.html

2、设置var_session_id,这个值是要在第一步的 Access-Control-Allow-Headers 设置

1.png

3、thinkphp设置session的机制是通过$_REQUEST方法获取,所以需要在ajax的时候把 xmsid 参数传给接口

2.png

4、接口初始化,这里需要使用到cookie来保存session_id的随机值,保证在session周期内这个值不变(这个很重要

4.png

3.png

5、设置获取session的时候要把  xmsid 参数传给接口

1545753906(1).png

1545754112(1).png

飓风呀
感谢你的支持,我会继续努力!
扫码打赏,感谢您的支持!
ajax session 跨域 

文明上网理性发言!

  • 还没有评论,沙发等你来抢