web 跨域 session丢失解决方法
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"]);
- 上一篇: 跨域、跨服务器调用时候session丢失的问题总结!!!
- 下一篇: 跨域访问会导致session失效