Backbone model.save()不调用错误或成功回调

mar*_*oss 51 backbone.js

我正在尝试更新数据库中的记录,因此我使用数据定义模型并调用.save()方法.触发PUT请求并更新数据库条目.问题是既没有成功也没有调用错误回调.可能是什么原因?

sessionsModel.save({
    error: function() {
        alert('test');
    },
    success: function () {
        alert('test');
    }
});
Run Code Online (Sandbox Code Playgroud)

编辑:请求返回JSON对象

mar*_*oss 73

刚刚发现问题解决的类似问题.你必须把一些东西作为第一个参数(因为我的模型已经明确地填充了数据,所以我把它放在空白处)和作为第二个参数的回调对象.所以像;

sessionsModel.save(null, {success:function() {} });
Run Code Online (Sandbox Code Playgroud)


Yas*_*ser 22

在搜索这个时,我首先登陆了这个对我不起作用的SO线程,但似乎对其他人有用,后来我遇到了这个链接,其中有人试过null而不是{}作为第一个参数.

this.model.save(null, {
    success: function (model, response) {
        console.log("success");
    },
    error: function (model, response) {
        console.log("error");
    }
});
Run Code Online (Sandbox Code Playgroud)

所以,这对我有用.希望这对你也有帮助.


Igo*_* G. 18

您的服务器必须返回JSON对象.如果响应不是JSON对象,则不会触发回调.请查看此解决方案/sf/answers/1552323111/

  • 哇,这就是答案.我只回到了一个没有身体的"200成功".然后在响应中添加了一个空对象并且它有效. (4认同)
  • 奇怪但真实! (3认同)
  • 感谢服务必须返回JSON的线索. (2认同)