我正在使用Backbone和Rails,我正在Backbone模型上进行保存调用。它将右侧参数传递给服务器,服务器以200响应,模型实际上在数据库中更新。
问题是,它返回带有错误的ajax调用。有趣的是,当我进入Backbone.sync中的ajax调用并且我输入错误,成功和完成回调时,它只触发完成。完整的回调会记录一个错误,但就是这样。
在此之后,页面重定向到相同的URL,但所有参数都在查询字符串中发送:
/嗒嗒/ 23 /索引
然后Backbone保存{thing:27,man:82},一切正常,但重定向到
/嗒嗒/ 23 /索引事情= 27&安培;人= 82
我不认为这是一个Backbone特定的问题,因为我在有效的JSON中返回更新的对象,并且我在Backbone.sync中的实际ajax调用上设置所有成功,错误,完整的回调。
任何人遇到类似或有建议的人?
答案 0 :(得分:2)
AAAHHHHH!
我花了很多时间试图弄清楚这个问题,结果却是如此愚蠢。 Backbone.sync调用来自于尝试从表单保存信息。所以我从表单中收集了数据,并使用属性调用了model.save。 Backbone.sync调用很好,但缺少一件事......
event.preventDefault()
表单是一个带有提交按钮的真实表单,在某些合并冲突期间某处,event.preventDefault()丢失了。
如果您遇到这种情况,请记得在提交真实表单时调用event.preventDefault(),但您希望它使用Backbone.sync或任何ajax调用。