php ,CI框架,解决跨域后,访问接口session不一致

接口代码:

 function test(){
        print (session_id());
    }

ci框架,获取sessionID,跨域后,每次访问,session不一致

clipboard.png

clipboard.png

php头部:

header('Access-Control-Allow-Origin: http://localhost:9000');//主要就是这句!!!不加就可以了,但是无法跨域
header("Access-Control-Allow-Credentials","true");
header("Access-Control-Allow-Origin", "Origin");
阅读 3.9k
1 个回答

跨域如果配置得当是不影响 session 的,通常 session 的唯一凭证是通过 cookie 存储的,如果出现 session 总是变化那是因为 cookie 的原因啦,所以跨域需要允许携带身份验证信息,也就是配置:

header("Access-Control-Allow-Credentials","true");

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

上面是后端的配置,当然前端也需要配置下: withCredentials

至于你说的 Access-Control-Allow-Origin 参数,这个是用来控制跨域的访问域名的,与 session 没有关系的。

Access-Control-Allow-Origin 只能配置一次,否则后面的会覆盖前面的。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题