Backbone 在 model.save
上的错误回调只接受两个参数 error: function(model, response){}
.在我的应用程序中,如果乐观锁定失败 409 conflict
状态已设置(很容易检索)。但是,服务器还会发送一条详细说明问题的自定义错误消息。
现在服务器使用更新的模型发送更新的 JSON 响应 以及错误消息 说明问题是什么。看来,主干抑制了这个错误。根据 jquery 的错误回调,签名是 error(jqXHR, textStatus, errorThrown)
.似乎 Backbone 丢弃了最后一部分,因此我似乎无法掌握服务器的自定义响应。
这是一个好习惯吗?我真的不想为了访问 errorThrown
而复制主干的保存功能。范围。有没有一种无缝的方式来访问errorThrown
?或者不让服务器发送自定义响应,只发送代码并让客户端构建响应以供查看是否更好?
最佳答案
Backbone 将 2 个参数传递给成功和错误案例。第一个是您要保存的模型,第二个是来自服务器的响应。如果响应是 JSON,您可以通过调用 response.responseJSON
访问它
this.model.save(null, {
success: function(model, response) {
console.model(response);
},
error: function (model, response) {
console.log(response.responseJSON);
}
});
关于ajax - 如何在 Backbone 的 model.save 错误回调中获取错误响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11870479/