问题:问题是我在cookie中设置的内容,所有内容都已自动发送给ajax请求。
预期:我只想将“ token”,“ userName”,“ lang”发送到ajax标头中。
尝试过:我试图将除“令牌”,“用户名”,“朗格”之外的所有cookie都转换为javascript localStorage,它工作正常,但为此,我想在整个系统中进行更改。所以我不喜欢
我想要对我的代码进行最小的更改,这可能吗?
注意:请不要使用任何第三方插件,例如(Cookie Monster)。因为客户端不喜欢实现任何插件。
我的常见Ajax呼叫。 (尚未设置任何Cookie)
$.ajax({
url : ajax_url,
dataType : "json",
type : method,
data : params,
cache : false,
crossDomain : true,
async : aSync,
contentType : 'application/x-www-form-urlencoded',
headers: {
"X-Requested-With":"XMLHttpRequest"
},
error : function(data, status, error) {
(ajaxObject.loader == true) ? unblockUI(loaderWrapper) : "";
failure_callback(error);
},
success : function(data) {
alert(data);
}
});
我设置Cookie的常用方法。 (登录后)
function login(returnObject) {
setCookie("token",returnObject.token,1);
setCookie("userName",returnObject.userName,1);
setCookie("lang",returnObject.lang,1);
setCookie("siteName",siteName,1);
setCookie("gridMaxWidth",gridMaxWidth,1);
setCookie("environment",returnObject.environment,1);
setCookie("version",returnObject.version,1);
setCookie("typeAheadCharCount",returnObject.typeAheadCharCount,1);
setCookie("warningApplyAllLimit",returnObject.warningApplyAllLimit,1);
}
通用集Cookie功能。
/* Set cookies */
function setCookie(cookieKey, cookieValue, cookieExpiry) {
if (cookieExpiry != -1) {
document.cookie = cookieKey + "=" + cookieValue + "; path=/";
} else {
document.cookie = cookieKey + "=" + cookieValue + "; expires=Thu, 01 Jan 1970 00:00:01 UTC; path=/";
}
}
答案 0 :(得分:0)
您的配置不属于Cookie。如果用户希望下次访问时具有相同的设置,则它属于会话的sessionStorage和localStorage。
也就是说,当您设置cookie时,它将与所有http请求一起发送,即使是位于设置cookie的代码在同一服务器上的图像也是如此。
除非将Ajax请求发送到其他服务器或路径(cookie仅发送到相同的源和路径),否则您不能将其更改为具有更少的Cookie。
如果您不想发送那么多cookie,那么