我正在编写一个应该与 REST API 接口的 Backbone 应用程序。
当用户删除已被其他人删除的模型时,就会出现我的问题。在我看来,后端应该只返回成功(200),因为模型无论如何都会被删除。但是开发服务器端的人有不同的看法,因此我得到的是 404。相比之下,当请求实际失败时 - 因此模型仍然存在 - 响应代码是 400,或者可能是授权问题的 401。
由于出现错误,我实际上并没有删除模型。我想要做的是修改这种行为:如果我在删除模型时收到 404 错误,它应该被视为成功。但我不确定什么是最方便的方法来处理这个问题。
理想情况下,我想避免把这个逻辑放在model.destroy
. 这将导致重复。我可以把它放在destroy
超类的方法中,但是模型无论如何都会覆盖这个方法,每个都有自己的逻辑,所以它会变得混乱。我希望此时model.destroy
方法获得成功,而不知道实际响应是 404。
另一方面,我不确定如何将此逻辑放入 Backbone.sync 中,除非重写整个函数。
将所有对 DELETE 请求的 404 响应转换为成功的最透明方法是什么?