Java后台写入cookie时,浏览器cookie视图显示为空,仔细查看后台设置参数都是正确的,于是猜测可能是跨域的问题,尝试在请求中加入跨域参数,写入成功。
首先解释两个字段:
1、xhrFieldsObject类型1.5.1 新增
一个具有多个"字段名称-字段值"对的对象,用于对本地XHR对象进行设置。一对「文件名-文件值」在本机设置XHR对象。例如,如果需要,你可以用它来为跨域请求设置XHR对象的withCredentials属性为true。
$.ajax({
url: a_cross_domain_url,
// 将XHR对象的withCredentials设为true
xhrFields: {
withCredentials: true
}
});
2、crossDomainBoolean类型1.5 新增
默认值:同域请求为false,跨域请求为true。指示是否是跨域请求。如果你想在同一域中强制跨域请求(如JSONP形式),请设置为true。例如,这允许服务器端重定向到另一个域。
3、ajax发送请求至后台
$.ajax({
type : "GET",
url : "URL",
data :request,
xhrFields: {
withCredentials: true
},
crossDomain: true,
dataType : "json",
success : function(rs) {
window.location.href = "index.html";
}
});
设置完毕发送请求,cookie写入成功。刚开始以为是后台的问题,纠结很久。遇到类似问题可以尝试一下。
4、赋jQuery.ajax()函数详解