ajax跨域请求携带cookie

前后端分离的项目,第一个要解决的就是跨域问题,然后就是保存用户信息的session和cookie的问题。然而在实际的开发中,对于前后端分离的项目,ajax请求无法携带cookie到后端,导致每次都会新创建一个session,而无法获取登录时保存的用户信息,导致一直获取不到数据。

解决方法:由于我的是springcloud微服务项目,解决跨域问题就直接在geteway网关配了

一、java后端网关解决跨域并允许携带cookie代码

在这里插入图片描述
我这里是gateway网关,前端对于后端所有请求都会经过网关。如果是普通项目可以写一个filter

@Overridepublic void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)throws IOException, ServletException {// TODO Auto-generated method stubHttpServletResponse resp = (HttpServletResponse) response;HttpServletRequest rep = (HttpServletRequest) request;//允许任何请求来源resp.addHeader("Access-Control-Allow-Origin", "*");//允许跨域请求携带cookie		resp.addHeader("Access-Control-Allow-Credentials", "true");// 跨域信息resp.addHeader("Access-Control-Allow-Headers", "*");resp.addHeader("Access-Control-Allow-Methods", "*");chain.doFilter(request, response);}

二、前端发送异步请求

在这里插入图片描述
主要是这个,意思是这个请求应该发送凭据。

xhrFields: {withCredentials: true
},

再次发送请求发现就携带了cookie,后台也拿到了存储在session中的数据
在这里插入图片描述


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部