↑ Ajax | ||||
Урок - jQuery.ajaxPrefilter() | ||||
← Предыдущий урок Урок - jQuery.ajax()
|
Следующий урок → Урок - jQuery.ajaxSetup()
|
Метод jQuery.ajaxPrefilter() позволяет установить пользовательский обработчик для изменения Ajax-параметров или существующих параметров, для каждого запроса, до вызова метода jQuery.ajax().
Синтаксис метода jQuery.ajaxPrefilter()
jQuery.ajaxPrefilter( [dataTypes ], handler(options, originalOptions, jqXHR) )
где
- dataTypes - строка, не обязательный аргумент, содержит в себе один или более типов dataTypes, разделенных пробелом.
- handler(options, originalOptions, jqXHR) - функция обратного вызова.
- options - параметры запроса.
- originalOptions - параметры предоставляемые методу, не измененные и без параметров ajaxSettings.
- jqXHR - jqXHR-объект текущего запроса.
Типичный пример регистрации используя jQuery.ajaxPrefilter() выглядит следующим образом:
$.ajaxPrefilter( function( options, originalOptions, jqXHR ) { // Modify options, control originalOptions, store jqXHR, etc });
Префильтры прекрасно подходят, для обработки пользовательских параметров. В следующем примере обращение к jQuery.ajax() будет автоматически прерывать запрос на тот же URL, если параметр abortOnRetry установлен в true:
var currentRequests = {}; $.ajaxPrefilter(function( options, originalOptions, jqXHR ) { if ( options.abortOnRetry ) { if ( currentRequests[ options.url ] ) { currentRequests[ options.url ].abort(); } currentRequests[ options.url ] = jqXHR; } });
Префильтры также могут быть использованы для изменения текущих параметров. Например, следующий пример кросс-доменного запроса через http://mydomain.net/proxy/:
$.ajaxPrefilter( function( options ) { if ( options.crossDomain ) { options.url = "http://mydomain.net/proxy/" + encodeURIComponent( options.url ); options.crossDomain = false; } });
Если параметр dataTypes не указан, префильтры удут применимы только на запросы с указанными типами данных. Например, следующий запрос применяется только для JSON и к скриптам запросов:
$.ajaxPrefilter( "json script", function( options, originalOptions, jqXHR ) { // Modify options, control originalOptions, store jqXHR, etc });
Метод jQuery.ajaxPrefilter() может также перенаправить запрос на другой dateType и вернет новый dateType. Например, следующий запрос будет выполнен для datType равный "script", если URL содержит ряд специфических свойств, определенных функцией isActualScript():
$.ajaxPrefilter(function( options ) { if ( isActuallyScript( options.url ) ) { return "script"; } });
Это позволит обеспечить запрос не только типом "script", но и тем что все префильтры для dataType = "script" будут применяться к нему.
↑ Ajax | ||||
Урок - jQuery.ajaxPrefilter() | ||||
← Предыдущий урок Урок - jQuery.ajax()
|
Следующий урок → Урок - jQuery.ajaxSetup()
|