Javascript 主干JS-删除REST接口中的模型
我正在编写一个主干应用程序,它应该与RESTAPI接口 我的问题出现在用户删除已被其他人删除的模型时。在我看来,后端应该只返回success(200),因为模型已经被删除了。但是开发服务器端的人有不同的观点,因此我得到的是404。为了进行比较,当请求实际失败时(因此模型仍然有效),响应代码为400,或者可能是401,用于授权问题 因为我得到了一个错误,我实际上没有删除模型。我试图做的是修改这种行为:如果在删除模型时出现404错误,则应将其视为成功。但我不确定什么是最方便的处理方法 理想情况下,我希望避免将此逻辑放入Javascript 主干JS-删除REST接口中的模型,javascript,rest,backbone.js,http-delete,Javascript,Rest,Backbone.js,Http Delete,我正在编写一个主干应用程序,它应该与RESTAPI接口 我的问题出现在用户删除已被其他人删除的模型时。在我看来,后端应该只返回success(200),因为模型已经被删除了。但是开发服务器端的人有不同的观点,因此我得到的是404。为了进行比较,当请求实际失败时(因此模型仍然有效),响应代码为400,或者可能是401,用于授权问题 因为我得到了一个错误,我实际上没有删除模型。我试图做的是修改这种行为:如果在删除模型时出现404错误,则应将其视为成功。但我不确定什么是最方便的处理方法 理想情况下,我
模型中。销毁。这将导致重复。我可以把它放在一个超类的destroy
方法中,但是模型无论如何都会覆盖这个方法,每个方法都有自己的逻辑,所以它会变得混乱。我更希望model.destroy
方法在不知道实际响应是404的情况下获得成功
另一方面,除了重写整个函数之外,我不知道如何将此逻辑放入Backbone.sync中
将删除请求的所有404响应转换为成功的最透明的方法是什么
这是一个黑客,但应该做到:
model.destroy({
error: function(model, resp, options) {
if (resp.status == 404) {
resp.status = 200;
options.success(model, resp);
}
}
})
顺便说一句,到目前为止,destroy()
和create()
都很乐观。回答得很好!你赢了我,但我的就没那么好了。谢谢你,它很好用!这是一个有点丑陋的观点,但现在它会做的。