Удалить Cookie из запроса заголовков Ajax, кроме некоторых - PullRequest
0 голосов
/ 03 апреля 2019

Проблема: Проблема в том, что я установил в куки, все автоматически отправляется в ajax-запрос.

Ожидается: Я хочу отправить только "token", "userName", "lang" в заголовок ajax.

Попытка: Я попытался преобразовать все файлы cookie в javascript localStorage, кроме "token", "userName", "lang", и он работает нормально, но для этого я хочу изменить во всей системе,поэтому мне не нравится

Я хочу минимальное изменение в своем коде, это возможно?

Примечание: Пожалуйста, не предпочитайте сторонние плагины, такие как (CookieМонстр).Потому что клиент не любит реализовывать любой плагин.

Мой Общий Ajax Call.(У меня нет файлов 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 голосов
/ 03 апреля 2019

Ваша конфигурация не принадлежит cookie. Он принадлежит в sessionStorage для сеанса и localStorage, если пользователь хочет иметь те же настройки в следующий раз, когда они посещают

Тем не менее, когда вы устанавливаете cookie, он будет отправляться со всеми http-запросами, даже изображениями, находящимися на том же сервере кода, который установил cookie.

Вы не можете изменить запрос Ajax, чтобы иметь меньше файлов cookie, если вы не отправите его на другой сервер или путь (файлы cookie отправляются только с тем же источником и путем)

Если вы не хотите отправлять так много файлов cookie, тогда

  • Используйте sessionStorage или localStorage для установки значений
  • Не устанавливайте куки, когда они не нужны, и удаляйте их, когда они больше не нужны.
  • Измените запрос ajax на другой сервер или путь, отличный от того, что находится в cookie
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...