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技术交流QQ群:179945282
欢迎加入ASP.NET(C#)交流QQ群:17534377