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
posted @ 2017-10-16 14:27  为乐而来  阅读(2900)  评论(0编辑  收藏  举报