2014-03-12 5 views
1

Я хотел бы добавить некоторые дополнительные свойства к Settings для ajaxSetup.Как я могу расширить параметры jQuery ajaxSetup?

После этого я получаю доступ к этим настройкам от BeforeSend и OnComplete обратных вызовов Ajax.

Для примера должен выглядеть примерно так:

$.ajaxSetup({ 
    myCustomProperty: 'SomeValue' 
}); 

Тогда:

$.ajax({ 
      type : 'POST', 
      url : url, 
      async : false, 
      data : postData, 
      beforeSend : function (x, settings){ 
       alert(settings.myCustomProperty); 
      }, 
      complete : function() { 
       alert(settings.myCustomProperty); 
      } 
    }); 

я не уверен, как получить доступ к interals из ajaxSetup продлить Settings?

+0

Вы пытаетесь обратиться к [$ .ajaxSetup] (https://api.jquery.com/jquery.ajaxsetup/)? –

+0

@probackpacker ah извините, обновленная опечатка в моем вопросе. Да – shenku

ответ

0

Если вы пытаетесь настроить вызов JQuery $ .ajax(), я бы не сделать это через $ .ajaxSetup(). jQuery специально рекомендует не использовать $ .ajaxSetup в первую очередь. От API docs:

Описание: Установить значения по умолчанию для будущих запросов Ajax. Его использование не рекомендуется.

Я бы рекомендовал вместо создать свой собственный метод, который вызывает $ .ajax() внутренне:

function myAwesomeAjax(settingsObj){ 
    // do some awesome stuff with your custom properties here 
    var myCustomProperty = "jQuery is awesome!"; 

    return $.ajax(settingsObj); 
} 

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

Если все, что вы пытаетесь сделать, это создать переменную, доступ к которой вы можете получить в обратных вызовах, просто укажите ее глобальную область. Для бонусных очков спрячьте все свои вещи в глобальном «пространстве имен», чтобы избежать конфликтов.

+0

Ах, извините, я неправильно это сделал, я хотел передать значение из вызова .ajax для использования в общем предписании. – shenku

-1

Вы можете установить параметры по умолчанию для AJAX таким образом:

$.ajaxSetup({ 
    data: { 
     myCustomProperty: 'SomeValue' 
    } 
}); 
+0

, который применяется только к настройкам по умолчанию, это будет расширение для них. – shenku

Смежные вопросы