问题描述:前端调用接口传入 一个值 后台用session存入这个值。
然后前端调用另外一个接口。java后台从session里面取第一次存入的值,发现为null。
解决方法 (1): 如果是用ajax ,请再两次请求中加上 crossDomain:true
$.ajax({
type: (!_method ? "post" : _method),
contentType: "application/json; charset=utf-8",
dataType: "json",
url: _url,
async: true,
crossDomain: true,
data: JSON.stringify(_data),
success: function (data) {
if (data.code == 0) {
_callback(data);
} else {
alert(data.desc);
}
}
});
解决方法(2)
由Java后台再第一次调用接口 存储数据的时候 返回sessionId
前端接收后 存入cookie 再下一个接口调用的时候 再头部加上
header: { cookie: "JSESSIONID=" + cookies.value },
或者:
$.ajax({
url: "http://test.com",
dataType: 'json',
type: 'GET',
beforeSend: function (xhr) {
xhr.setRequestHeader("Test", "testheadervalue");
},
async: false,
cache: false,
//contentType: 'application/x-www-form-urlencoded',
success: function (sResponse) {
}
});