2016-01-22 66 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() {} 
}); 
相关问题