骨干更新触发完成,但不是错误或成功

时间:2012-03-30 17:12:25

标签: javascript ajax backbone.js

我正在使用Backbone和Rails,我正在Backbone模型上进行保存调用。它将右侧参数传递给服务器,服务器以200响应,模型实际上在数据库中更新。

问题是,它返回带有错误的ajax调用。有趣的是,当我进入Backbone.sync中的ajax调用并且我输入错误,成功和完成回调时,它只触发完成。完整的回调会记录一个错误,但就是这样。

在此之后,页面重定向到相同的URL,但所有参数都在查询字符串中发送:

/嗒嗒/ 23 /索引

然后Backbone保存{thing:27,man:82},一切正常,但重定向到

/嗒嗒/ 23 /索引事情= 27&安培;人= 82

我不认为这是一个Backbone特定的问题,因为我在有效的JSON中返回更新的对象,并且我在Backbone.sync中的实际ajax调用上设置所有成功,错误,完整的回调。

任何人遇到类似或有建议的人?

1 个答案:

答案 0 :(得分:2)

AAAHHHHH!

我花了很多时间试图弄清楚这个问题,结果却是如此愚蠢。 Backbone.sync调用来自于尝试从表单保存信息。所以我从表单中收集了数据,并使用属性调用了model.save。 Backbone.sync调用很好,但缺少一件事......

event.preventDefault()

表单是一个带有提交按钮的真实表单,在某些合并冲突期间某处,event.preventDefault()丢失了。

如果您遇到这种情况,请记得在提交真实表单时调用event.preventDefault(),但您希望它使用Backbone.sync或任何ajax调用。