禁用ajaxSetup

时间:2016-01-22 18:09:36

标签: javascript jquery ajax

我有3个js文件:

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

2 个答案:

答案 0 :(得分:1)

我在commitRegistration方法中将错误属性添加到ajax调用。

<form id="form">

<input type="checkbox" class="checkbox" name="E113" value="{'id':'sxk1', value: '19'}"/>
<input type="checkbox" class="checkbox" name="E113" value="{'id':'sxk22', value: '29'}"/>
<input type="checkbox" class="checkbox" name="E013" value="{'id':'kxk1', value: '22'}"/>
<input type="checkbox" class="checkbox" name="E013" value="{'id':'sxk3', value: '15'}"/>

</form>

答案 1 :(得分:1)

您可以通过传递每个ajax调用

选项来覆盖它
  

使用任何函数的所有后续Ajax调用都将使用new   设置,除非被个别电话覆盖,直到下一次   调用$ .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() {}
});