我正在将 Backbone 与 Rails 结合使用,并且正在对 Backbone 模型进行保存调用。它将正确的参数传递给服务器,服务器以 200 响应,模型实际上在数据库中得到更新。
问题是,它返回 ajax 调用时出现错误。有趣的是,当我进入 Backbone.sync 中的 ajax 调用并放置错误、成功和完成回调时,它只会触发完成。完整的回调注册了一个错误,但仅此而已。
此后,页面重定向到相同的网址,但所有参数都在查询字符串中发送:
/blah/23/index
然后 Backbone 保存为 {thing: 27, man: 82},一切正常,但重定向到
/blah/23/index?thing=27&man=82
我不认为这是 Backbone 特定的问题,因为我正在以有效的 JSON 返回更新后的对象,并且我正在 Backbone.sync 中的实际 ajax 调用上设置所有成功、错误、完整回调。
有人遇到过类似的事情或有建议吗?
最佳答案
啊啊啊啊!
我花了很多时间试图解决这个问题,结果发现它是如此愚蠢。 Backbone.sync 调用来自尝试保存表单中的信息。因此,我从表单中收集了数据,并使用属性调用 model.save 。 Backbone.sync 调用很好,但缺少一件事......
event.preventDefault()
该表单是一个带有提交按钮的真实表单,在某些合并冲突期间,event.preventDefault() 丢失了。
如果您遇到这种情况,请记住在提交真实表单时调用 event.preventDefault(),但您希望它使用 Backbone.sync 或任何 ajax 调用。
关于javascript - 主干更新触发完成,但没有错误或成功,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9947477/