AJax技术

Ajax跨域请求,同时保证session一致

字号+ 作者:H5之家 来源:H5之家 2017-11-09 11:03 我要评论( )

Ajax跨域请求,同时保证session一致

最近在项目中碰到一个问题,ajax跨域请求时,每次tomcat都会生成一个新的session。

在百度中找到了解决方法。

当我们在进行跨域访问的时候,我们的sessionId就不会被保存下来,也就是说,每一次的请求,服务器就会以为是一个新的人,而不是同一个人,为了解决这样的办法,需要对跨域访问的request头部重写。

response.setContentType("textml;charset=UTF-8"); response.setHeader("Access-Control-Allow-Origin", request.getHeader("Origin")); response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE"); response.setHeader("Access-Control-Max-Age", "0"); response.setHeader("Access-Control-Allow-Headers", "Origin, No-Cache, X-Requested-With, If-Modified-Since, Pragma, Last-Modified, Cache-Control, Expires, Content-Type, X-E4M-With,userId,token"); response.setHeader("Access-Control-Allow-Credentials", "true"); response.setHeader("XDomainRequestAllowed","1");

同时ajax也需要设置withCredentials和crossDomain

jQuery的ajax

$.ajax({ url:url, //加上这句话 xhrFields: { withCredentials: true }, crossDomain: true, success:function(result){ alert("test"); }, error:function(){ } });

原生ajax

var xhr = window.XMLHttpRequest ? new window.XMLHttpRequest() : window.ActiveXObject ? new ActiveXObject('Microsoft.XMLHTTP') : null; xhr.open('GET', url, true); //设置支持跨域和带cookie一起发送 xhr.withCredentials = true; xhr.crossDomain = true; xhr.send();

转载请注明出处:

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • WebApi Ajax跨域请求的解决方法(利用CORS实现)

    WebApi Ajax跨域请求的解决方法(利用CORS实现)

    2017-08-30 13:01

  • 关于jquery中ajax跨域请求外网数据的实现方法

    关于jquery中ajax跨域请求外网数据的实现方法

    2017-05-20 15:03

  • AJAX跨域请求json数据的实现方法

    AJAX跨域请求json数据的实现方法

    2017-02-27 15:00

  • 通过jsonp获取json数据实现AJAX跨域请求

    通过jsonp获取json数据实现AJAX跨域请求

    2017-01-29 13:03

网友点评