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'; });