400 HTTP返回时未调用错误回调

时间:2012-06-18 01:38:00

标签: backbone.js

我有一个RESTful服务,当我尝试保存新记录时会进行唯一的电子邮件检查。当它失败时,我返回一个400错误代码以及一个带有“errors”值的JSON消息。

不幸的是,我的保存上的错误回调似乎没有被解雇。有什么建议吗?

var nRecord = new RecordModel(values);
nRecord.save({
    wait: true,
    error: function(model,response){
        console.log('error2');
        obj.errorHandler(model,response);
    },
    success: function() {
        console.log('success2');
        obj.alert('Information saved!','Record Created!','success');

        // if there were no errors, clear the list
        $('#record-form :input').val('');
    }
});

“Error2”永远不会显示在控制台中。想法?

2 个答案:

答案 0 :(得分:8)

您似乎将错误处理程序和其他选项作为模型属性传递并保存到模型中。尝试将null作为第一个参数传递给save函数。希望这会使它工作:)

nRecord.save(null,{
    wait: true,
    error: function(model,response){
        console.log('error2');
        obj.errorHandler(model,response);
    },
    success: function() {
        console.log('success2');
        obj.alert('Information saved!','Record Created!','success');

        // if there were no errors, clear the list
        $('#record-form :input').val('');
    }
});

答案 1 :(得分:1)

我有这个问题,问题是我覆盖了模型中的同步。这意味着选项没有传入。

completeCustomer.save(null, {
                wait: true,
                error: function(model,response){
                    console.log('error2');
                    //obj.errorHandler(model,response);
                    _.bind(this.handleError, this);
                },
                success: function() {
                    console.log('success2');
                    //_.bind(this.handleSuccess, this);
                }
            });