从Ajax的请求标头中除去Cookie

时间:2019-04-03 07:27:03

标签: jquery ajax cookies

问题:问题是我在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=/";
     }
}

1 个答案:

答案 0 :(得分:0)

您的配置不属于Cookie。如果用户希望下次访问时具有相同的设置,则它属于会话的sessionStorage和localStorage。

也就是说,当您设置cookie时,它将与所有http请求一起发送,即使是位于设置cookie的代码在同一服务器上的图像也是如此。

除非将Ajax请求发送到其他服务器或路径(cookie仅发送到相同的源和路径),否则您不能将其更改为具有更少的Cookie。

如果您不想发送那么多cookie,那么

  • 使用sessionStorage或localStorage设置值
  • 不要在不需要时设置cookie,并在不再需要时将其删除。
  • 将ajax请求更改为与Cookie中不同的服务器或路径