ajax请求头cookies中传递sid,跨域请求单点登录,登录成功,但是在controller中获取的cookie与浏览器中不一致,请大神指点一二。^_^...

跨域请求js代码:

$.ajax({

type:"post",

async:false,

contentType : "application/x-www-form-urlencoded;charset=UTF-8",

//data:"username=superadmin&password=1&captcha=",

data:{

username:"superadmin",

password:"1",

captcha:""

},

xhrFields: {

withCredentials: true

},

crossDomain:true,

url : "http://127.0.0.1:8090/platform/login/doLogin",

complete : function(xhr) {

if (xhr.readyState == 4 && xhr.status == 200) {

var ret = xhr.responseJSON;

debugger;//这里能收到登录成功的信息

... ...

} else {

... ...

}

}

});

controller中增加了

res.setHeader("Access-Control-Allow-Origin","http://127.0.0.1:8080");

res.setHeader("Access-Control-Allow-Headers","Origin, X-Requested-With, Content-Type, Accept, Key");

res.setHeader("Access-Control-Allow-Credentials","true");

场景描述:

我的login页面是在tomcat的8080端口的一个服务,nutzwk起在了另一个Tomcat的8090端口。

比如当前浏览器打开login页面,然后再谷歌开发者工具中查看cookie,内容如下

name value domain path

sid a948518-3d0c-4b39-8898-616b7850b609 127.0.0.1 / ..........

然后发送登录请求,返回信息是登录成功。开发者工具中查看doLogin的请求

request cookies 中sid=f2cae97c-f38f-4a79-b150-127810117f3a

浏览器的cookie的sid值 和 login请求的request的sid 不一样,其中f2cae97c-f38f-4a79-b150-127810117f3a这个在redis中是登录状态。请问这是为什么?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值