Отключение ajaxSetup по умолчанию для некоторых вызовов AJAX - PullRequest
7 голосов
/ 10 ноября 2009

Созданная мною корпоративная интрасеть интенсивно использует вызовы AJAX для загрузки таблиц и других ресурсов. По умолчанию у меня появляется модальное диалоговое окно с загрузочным GIF, чтобы сообщить пользователю, что страница загружается. Я установил это значение по умолчанию с помощью jjuery's ajaxSetup.

Есть несколько областей, где я использую окно поиска с автозаполнением. И я заметил, что каждый раз, когда вводится символ, появляется диалоговое окно загрузки. Любой способ отключить ajaxSetup только для этого вызова?

Спасибо за помощь!

Ответы [ 5 ]

11 голосов
/ 10 ноября 2009

Вы должны иметь возможность передавать новый объект параметров при каждом вызове ajax, чтобы при необходимости перезаписывать настройки по умолчанию.

Не уверен, что ваш модал включен перед отправкой или что у вас есть, но я думаю, что вы получите изображение снизу.

$.ajax({ beforeSend: function() { /* do nothing */ }....
9 голосов
/ 10 ноября 2009

Я предполагаю, что вы создали обработчик для глобального события Ajax, чтобы создать диалоговое окно. Эти события могут быть отключены для определенного запроса, например, так (из документации jQuery):

Глобальные события

Эти события передаются всем элементам в DOM, вызывая любые обработчики, которые могут прослушивать. Вы можете слушать эти события так:

$("#loading").bind("ajaxSend", function(){
   $(this).show();
 }).bind("ajaxComplete", function(){
   $(this).hide();
 });

Глобальные события можно отключить для конкретного Ajax-запроса, передав глобальный параметр, например, так:

$.ajax({
   url: "test.html",
   global: false,
   // ...
 });
1 голос
/ 19 сентября 2017

Отключение настроек ajaxSetup по умолчанию для некоторых вызовов AJAX. Есть одна строка add

beforeSend: function(){$.event.trigger('ajaxStart');}

beforeSend (Локальное событие) = Это событие, которое будет инициировано до запуска Ajax-запроса, позволяет изменить объект XMLHttpRequest

0 голосов
/ 25 апреля 2018

Чтобы избежать некоторых конкретных URL-адресов, я использовал этот способ

$.ajaxSetup({
 beforeSend: function (xhr)
            {   
                    if(this.url !="specific urls"){
//code here
                    }
            },
})();
0 голосов
/ 10 ноября 2009

Используйте вызов $. Ajax () , чтобы переопределить значения по умолчанию, установленные в $ .ajaxSetup ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...