ajax - 如何在 Backbone 的 model.save 错误回调中获取错误响应?

标签 ajax backbone.js error-handling response

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/

相关文章:

jquery - MySQL:简单的 LIKE 语句与预期的模式不匹配

javascript - Backbone.js 路由器动态第一个参数

javascript - express/NodeJS 上的 CORS 问题,Internet Explorer 不提供服务

javascript - 在 Backbone.js 中拖放模型的 ID

c# - 从已有返回类型的方法中获取错误

error-handling - 如何匹配特定的 io::Error 类型?

jquery - 自动完成请求/服务器响应是什么样的?

javascript - laravel 无法使用 ajax 服务器状态 419 发布数据

ajax - JSF/PrimeFaces ajax 请求上的 session 超时和 ViewExpiredException 处理

c# - Web API 2 OData错误消息作为XML返回