ajax 跨域请求没有带上cookie 解决办法
公司项目前后端分离。。 前端全部html 静态页面。。 后端java 接口服务
由于前后端分离,出现跨域问题。 为了解决,我们使用jsonp 方式请求接口服务,暂时解决了跨域问题(使用jquery ajax type:jsonp 方式)。
某天前端发送一个请求,非常长,而甲方要求只能使用ie 浏览器,url请求长度要求 2083 。超了。。改为post 请求。
一切顺利,发送请求。。报错:没有登录。。调试发现是 cookie为空。
百度发现原来是浏览器安全原因。。局域跨域传送cookie .. 解决办法如下:
$.ajax({type: 'POST',url:"",data:{},dataType:"JSON",
xhrFields: { withCredentials: true }, crossDomain: true, function(data){alert(data)}});
并且 java端
response.setHeader("Access-Control-Allow-Credentials", true); response.setHeader("Access-Control-Allow-Origin", "www.xx.com");
参考: http://blog.csdn.net/u010865433/article/details/52786677