Это старый вопрос, но я пришел сюда из Google и подумал, что другие люди, ищущие то же самое, должны иметь работающее решение. Я попробовал предложенный ответ, но он не работает. Изменение данных в обработчике ajaxSend не меняет того, что отправляется.
Моя цель была такой же, как у OP, вставить дополнительный параметр в запросы.
Итак, я разработал для него хакерское решение: переопределить метод jQuery ajax.
Просто замените «injected_param» и «injected_value» в соответствии с вашими потребностями. Я добавил несколько охранников, чтобы проверить, присутствует ли параметр или нет, на всякий случай.
$(function() {
var jqAjax = $.ajax;
$.ajax = function (settings, settingsObj) {
if (typeof(settings) == "string") {
settingsObj.url = settings;
settings = settingsObj;
}
if (!settings.data) {
settings.data = {};
}
if (typeof(settings.data) == "string" && settings.data.indexOf("&injected_param=") < 0) {
settings.data += "&injected_param=injected_value";
}
else if (!settings.data.injected_param) {
settings.data.injected_param = "injected_value";
}
jqAjax (settings);
};
});