牛骨文教育服务平台(让学习变的简单)
博文笔记

web 跨域 session丢失解决方法

创建时间:2017-04-08 投稿人: 浏览次数:1493

1、html ajax中加入属性

xhrFields: {
 withCredentials: true
 },

整个ajax请求如下

$.ajax({
            url: "http://server.change.com/api/toLogin",
            type: "POST",
            data: {},
            dataType:"json",
            xhrFields: {
         withCredentials: true
      },
      // crossDomain: true,
            success: function(data){

...

2、加入header

header("Access-Control-Allow-Origin: http://template.change.com");

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

由于加了响应头"Access-Control-Allow-Credentials: true",Access-Control-Allow-Origin的值不能再为*,需要指定。

如果你需要任意站点都能访问你的api,可以先获取http_origin,在php中是用$_SERVER["HTTP_ORIGIN"]获取的

然后将header("Access-Control-Allow-Origin: http://template.change.com");改成header("Access-Control-Allow-Origin: ".$_SERVER["HTTP_ORIGIN"]);

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。