解决AJAX跨域请求Java后端收不到cookie
2020-05-31 18:35
120 查看
因为规则为了安全的原因,ajax跨域请求默认是不发送cookie的,首先要搞清楚什么是跨域请求。
根据百度百科的解释是:AJAX 跨域访问是用户访问A网站时所产生的对B网站的跨域访问请求均提交到A网站的指定页面。
说人话举个例子:
网站A:a.test.com 通过ajax请求网站B:b.test.com上的接口,很明显网站A和网站B 是两个不同的域,而处于安全机制,JS只能访问与所在页面同一个域(相同协议、域名、端口)的内容,但是我们在项目开发时,经常遇到一个页面的js代码,通过AJAX 去访问另一个服务器并返回数据,这就是AJAX 跨域访问的由来。
跨域访问一般是被阻止的,因为在安全上有个规则:同源策略要求客户端和服务端都必须在一个域内才能通信。所谓同源也就是网站A和网站B必须是相同的域名。
怎么解决这个问题呢?
解决方案:
1、在ajax请求里加上xhrFields: {withCredentials: true}, crossDomain: true。
$.ajax({ type: "post", url:url, beforeSend: function(xhr) { xhr.withCredentials = true; } crossDomain:true, dataType:"json", ..........(略) });
2、服务端需配置Access-Control-Allow-Credentials为true
response.setHeader("Access-Control-Allow-Credentials", "true");
3、服务端需配置Access-Control-Allow-Origin
response.setHeader("Access-Control-Allow-Origin", request.getHeader("Origin"));
相关文章推荐
- html用ajax请求服务器后端java接口跨域问题解决
- JAVA SSM框架中解决ajax及swagger测试请求跨域问题
- ajax请求json类型无法跨域传递cookie的问题解决
- 解决html跨域请求——JSONP+AJAX+JAVA Servlet
- 解决ajax跨域请求数据cookie丢失问题
- Springboot+Ajax前后端分离解决跨域请求
- Ajax跨域请求COOKIE无法带上的解决办法
- Ajax跨域请求COOKIE无法带上的解决办法
- 解决ajax跨域请求数据cookie丢失问题
- ajax 跨域请求(后端语言为 Java)
- ajax请求,跨域问题,在Java客户端中解决
- 在前后端分离的项目中,ajax跨域请求怎样附带cookie
- 解决ajax跨域请求数据cookie丢失问题
- js ajax解决跨域请求,以及requestheader里没有cookie 3ff0
- 前后端分离的web项目,ajax跨域请求后端携带cookie
- Ajax跨域请求COOKIE无法带上的解决办法
- java网络编程____Ajax请求跨域的问题解决
- 在前后端分离的项目中,ajax跨域请求怎样附带cookie
- 在前后端分离的项目中,ajax跨域请求怎样附带cookie
- Ajax跨域请求COOKIE无法带上的完美解决办法