Добавить параметр ко всем запросам JQuery Ajax

349
13 января 2018, 03:11

Есть сайт на React (но не SPA) со множеством ajax запросов через JQuery. Нужно ко всем GET/POST запросам добавить дополнительный параметр в URL.

Например, при abc=123 запросы получатся следующие:

localhost:8080 -> localhost:8080?abc=123
localhost:8080?qwe=456 -> localhost:8080?qwe=456&abc=123

Как это сделать без переписывания всех запросов?

P.S. это мне нужно, чтобы номер сессии прописать в URL, так как Cookie для меня не подходит.

Answer 1

http://api.jquery.com/jquery.ajaxprefilter/

$.ajaxPrefilter(function (options, originalOptions, jqXHR) {
    var hasQM = options.url.indexOf("?") >= 0; // QM - question mark
    options.url = options.url + (hasQM? "&" : "?") + "abc=123";
});
Answer 2

Приходит на ум что-то типа:
1) По всему проекту заменить $.ajax на скажем ajaxRequest
2) Сделать собственно обертку ...

function ajaxRequest( params ) {
  params.url += `${(/\?/.test(params.url) ? '&' : '?')}abc=123`;
  $.ajax(params);
}

Дальше уже от фантазии и разнообразия зависит, возможно придется менять не url, а data или ещё что-то ...

READ ALSO
Валидация поля регулярным выражением

Валидация поля регулярным выражением

Нужно реализовать валидацию для поляВ поле можно вводить только латинские буквы, дефис и пробел

213
Вывод данных через выбор даты

Вывод данных через выбор даты

Делаю биг-дату, которая содержит в себе данные за каждый деньТребуется на фронте вставить календарь, благодаря которому можно выбрать дату...

209
Вопрос про оптимизацию кода

Вопрос про оптимизацию кода

Сегодня попробовал google closureЗаметил, что цифры в условиях он ставит на первое место:

237