2012-06-18 3 views
2

У меня есть служба RESTful, которая, когда я пытаюсь сохранить новую запись, выполняет уникальную проверку электронной почты. Когда он терпит неудачу, я возвращаю код ошибки 400 вместе с сообщением JSON со значением «ошибки» в нем.Ошибка обратного вызова не вызвана 400 HTTP Возврат

К сожалению, мой обратный вызов ошибки в моем сохранении, похоже, не срабатывает. Какие-либо предложения?

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(''); 
    } 
}); 

«Ошибка2» никогда не отображается в консоли. Мысли?

ответ

8

Вы, кажется, передаете свой обработчик ошибок и другие параметры в качестве атрибутов модели и сохраняете их в модели. Попробуйте передать null в качестве первого параметра функции сохранения. Надеемся, что это сделает его работу :)

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

это сделали! go figure .... спасибо за исправление – enygma

+0

hmm ... У меня такая же проблема, но с 'fetch()', а не 'save()'. Это решение не работает для меня (магистраль 0.9.2). Я попытался использовать аргументы '(originalModel, resp, options)', найденные в исходном коде для обратного вызова onError. Я не понимаю ... –

+0

Это решение для меня тоже не работает. Что такое принятый метод? –

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); 
       } 
      });