2016-01-22 69 views
1

我有3個js文件:禁用ajaxSetup

app.js

$.ajaxSetup({ 
    error : function(request) { 
     switch (request.status) { 
      ... 
      case 422: 
       App.handle422(request); 
       break; 
      ... 
     } 
    } 
}); 

種族registration.js

var RaceRegistrationProxy = { 

    url : App.getContextPath() + "/api/event", 

    submitRegistration : function(raceId, eventId, data) { 
     return $.ajax({ 
      type : "POST", 
      url : this.url + "/" + eventId + "/" + raceId + "/registration", 
      data : JSON.stringify(data), 
      contentType : "application/json", 
      beforeSend : function(request) { 
       App.setHeader(request) 
      } 
     }); 
    } 
} 

main.js

... 
$("form").submit(function(event) { 
    event.preventDefault(); 
    $("[id$='-message']").hide(); 
    var data = { 
     'team_name' : $("#teamName").val(), 
     'category_id' : $("#categoryId").val(), 
     'members_ids' : memberIds 
    }; 
    RaceRegistrationProxy.submitRegistration(raceId, eventId, data) 
         .done(registrationOk) 
         .fail(registrationFail); 
}); 
... 

如何在此特定方法發生錯誤時禁用ajaxSetup?我已經嘗試在submitRegistration方法中使用global:false

+0

[**注:**這裏指定的設置將影響到$阿賈克斯或基於Ajax的衍生物,如$獲得()的調用。這可能會導致不良行爲,因爲其他呼叫者(例如插件)可能正在期待正常的默認設置。出於這個原因,我們*強烈建議不要使用此API *。相反,請在調用中明確設置選項,或者定義一個簡單的插件來執行此操作。](https://api.jquery.com/jquery.ajaxsetup/) – Script47

回答

1

我在submitRegistration方法中將錯誤屬性添加到ajax調用中。

submitRegistration : function(raceId, eventId, data) { 
     return $.ajax({ 
      type : "POST", 
      url : this.url + "/" + eventId + "/" + raceId + "/registration", 
      data : JSON.stringify(data), 
      contentType : "application/json", 
      beforeSend : function(request) { 
       App.setHeader(request) 
      }, 
      error : function(){} 
     }); 
    } 
1

你可以通過選擇每個Ajax調用覆蓋它

所有後續Ajax調用使用任何功能將使用新的 設置,除非各個呼叫重寫,直到下一次 調用$ .ajaxSetup()。

,如:

return $.ajax({ 
    type : "POST", 
    url : this.url + "/" + eventId + "/" + raceId + "/registration", 
    data : JSON.stringify(data), 
    contentType : "application/json", 
    beforeSend : function(request) { 
     App.setHeader(request) 
    }, 
    // here you overrite $.ajaxSetup(). 
    error : function() {} 
}); 
相關問題