前后端分离通过ajax,request无法发送cookie
来源:3-7 分布式session下

weixin_慕少5105451
2019-04-22
我用前后端分离进行登陆,端口不一样,login.html用ajax与后端进行交互时,
ajax代码:
$.ajax({
url:'http://localhost:8088/login/dologin',
type:'POST',
data:{
number:data.field.number,
password:data.field.password
},
success: function (da) {
if (da.code==0){
window.location.href = "index.html";
}else {
layer.msg(da.msg);
}
后端controller:
@RequestMapping(value = "/dologin",method = RequestMethod.POST)
@CrossOrigin(allowCredentials="true")
public MSUserResult<Boolean> dologin(LoginVo loginVo, HttpServletResponse response){
return msUserService.login(loginVo,response);
}
service层:
public MSUserResult<Boolean> login(LoginVo loginVo, HttpServletResponse response) {
MSUser user = getUserByNumber(loginVo.getNumber());
if (user==null){
return MSUserResult.error(CodeMsg.USER_NOT_EXIST);
}
String password = Md5Utils.inputpassToDBpass(loginVo.getPassword());
if (!password.equals(user.getPassword())){
return MSUserResult.error(CodeMsg.PASSWORD_ERROR);
}
String token = UUIDUtil.uuid();
refreshCookie(response,token,user);
return SRTUserResult.success(true);
}
private void refreshCookie(HttpServletResponse response, String token, MSUser user) {
redisService.set(MSUserKey.getkeyByToken,token,user);
Cookie cookie = new Cookie(COOKIE_NAME,token);
cookie.setMaxAge(MSUserKey.getkeyByToken.expireSeconds());
cookie.setPath("/");
response.addCookie(cookie);
}
我的cookie在redis中存好了,也返回到了前端页面
但是在另一个页面通过ajax请求,在request header中却没有cookie这个该怎么解决
写回答
1回答
-
端口不一样存在跨域问题,服务端接口允许跨域就可以
032019-04-22
相似问题