java Ajax跨域请求COOKIE无法带上的解决办法

Posted 为乐而来

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java Ajax跨域请求COOKIE无法带上的解决办法相关的知识,希望对你有一定的参考价值。

1.web.xml加入以下节点,,一定放在第一个filter

<!--目录下所有文件可以跨域Begin-->
<filter>
  <filter-name>CorsFilter</filter-name>
  <filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
</filter>
<filter-mapping>
  <filter-name>CorsFilter</filter-name>
  <url-pattern>/*</url-pattern>
</filter-mapping>

2.ajax添加参数

 

原生ajax请求方式:
var xhr = new XMLHttpRequest();  
xhr.open("POST", "http://xxxx.com/demo/b/index.php", true);  
xhr.withCredentials = true; //支持跨域发送cookies
xhr.send();

jquery的ajax的post方法请求:
 $.ajax({
               type: "POST",
               url: "http://xxx.com/api/test",
               dataType: ‘jsonp‘,
               xhrFields: {
                      withCredentials: true
              },
            crossDomain: true,
           success:function(){
     },
           error:function(){
    }
})

这二个参数都要加:
 xhrFields: {withCredentials: true},
 crossDomain: true,


另外的一个问题:
js跨域调用,Iframe子页跨域调父页的js方法
在子页和父页设置document.domain = ‘abc.com‘;//本地就用locahost

以上是关于java Ajax跨域请求COOKIE无法带上的解决办法的主要内容,如果未能解决你的问题,请参考以下文章

jQuery跨域请求带Cookie和Session的方法

Ajax跨域请求携带cookie问题

跨域请求传递Cookie问题

ajax跨域请求无法携带cookie的问题

egg.js 跨域 设置cookie

Ajax 跨域请求 Cookie 无法携带/保存的解决办法