Ajax跨域每次请求产生新的sessionId

Ajax跨域每次请求产生新的sessionId

在处理多语言过程中,需要在门户中往其它应用的session中设置语言ID,跳转到其它应用时从session中获取出语言ID设置语言,才能整个应用圈使用同一种语言。

浏览器在使用请求首页访问时会把获取到的sessionId返回到浏览器中,如下图:
Ajax跨域每次请求产生新的sessionId_第1张图片

当第2次请求时则使用已有的,如下图:
Ajax跨域每次请求产生新的sessionId_第2张图片

那么我们跨域往这个以下sessionId中设置数据,再打开新的选项卡,进入刚刚跨域的网页时,获取到的sessionId就是当前的sessionId,那么我们可以在应用未打开之前设置自己想设置的内容,具体场景: 多语言,多数据源,等等均可,视业务用途而定。

JSESSIONID=E2D5893F72E1961E327DA5B1D56406E9

切记: ajax中的type一定要用GET,起初我就是用的POST然后每次返回的sessionId不一样,这个坑爬了一会,因为知道jsonp请求其实最终会转成get请求访问,忽略了。

通过拦截是看不出效果,因为type: get, post都是以下的显示信息,如下图:
这里写图片描述

正常写法信息见下图:

$.ajax({
    url: 'http://47.98.62.245:7891/res/login.spr?method=setResLocaleOutSys&language=en_US',
    type:'GET',
    cache:false,
    data:{"openId":''},
    dataType: 'jsonp',
    jsonp:'jsoncallback',
    success:function(data) {
        console.log('设置成功!   '+this.url);
        console.log(data);
    },
    error: function(XMLHttpRequest, textStatus, errorThrown){
        console.log(XMLHttpRequest.status);   // 200
        console.log(textStatus);   // parsererror
        console.log(errorThrown);  // SyntaxError: Unexpected end of input
    }
});

完毕,欢迎讨论,请留言!

你可能感兴趣的:(AJAX,JAVA,Spring,JS)