jQuery.ajaxPrefilter()
Метод jQuery.ajaxPrefilter() используется для управления запросами до того, как они будут отправлены. Управление, в основном, заключается в редактировании параметров запросов.
Варианты использования
jQuery.ajaxPrefilter([типы_данных, ]обработчик)-
Выполняет переданный обработчик перед отправкой ajax-запроса.
Необязательный параметртипы_данныхпозволяет отфильтровать запросы по типу данных, ожидаемых от сервера (перечисляются через пробел).
Обработчик может принимать три аргумента:- Все параметры запроса.
- Параметры запроса, указанные при вызове
$.ajax(). - jqXHR-объект.
Примеры
Метод $.ajaxPrefilter() можно использовать для управления пользовательскими настройками запросов. В примере ниже анализируется пользовательский параметр abortOnRetry. Если он имеет значение true, тогда новый запрос приводит к отмене всех предшествующих запросов на тот же URL:
var currentRequests = {};
$.ajaxPrefilter(function(options, originalOptions, jqXHR) {
if (options.abortOnRetry) {
if (currentRequests[options.url]) {
currentRequests[options.url].abort();
}
currentRequests[options.url] = jqXHR;
}
});
Следующий пример демонстрирует управление запросом с помощью встроенных параметров запроса. Если запрос указан как кроссдоменный, тогда он просто перенаправляется на новый URL:
$.ajaxPrefilter(function(options) {
if (options.crossDomain) {
options.url = 'http://your-server.ru/proxy/' + encodeURIComponent(options.url);
options.crossDomain = false;
}
});
Метод $.ajaxPrefilter() может изменить параметр dataType, вернув новое значение. Все запросы типа 'script' преобразуются в 'jsonp':
$.ajaxPrefilter('script', function() {
return 'jsonp';
});