52

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

sessionsModel.save({
    error: function() {
        alert('test');
    },
    success: function () {
        alert('test');
    }
});

编辑:请求返回 JSON 对象

4

4 回答 4

74

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

sessionsModel.save(null, {success:function() {} });
于 2012-07-04T04:03:19.093 回答
23

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

this.model.save(null, {
    success: function (model, response) {
        console.log("success");
    },
    error: function (model, response) {
        console.log("error");
    }
});

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

于 2013-02-25T08:45:06.880 回答
18

您的服务器必须返回一个 JSON 对象。如果响应不是 JSON 对象,则不会触发回调。检查此解决方案https://stackoverflow.com/a/22176044/1579718

于 2014-03-04T15:27:39.743 回答
3

我遇到了这个问题 - 但因为我的服务器正在使用有效的 JSON 对象(模型)进行响应,并且我已经null在保存调用中使用了,所以我一直在苦苦挣扎。

正如我(最终)发现的那样,在触发成功回调之前,返回的模型通过 validate 方法传递。在我的情况下,我遇到了一个(当你在正确的地方寻找时很明显)问题,导致返回的模型被视为无效并随后阻止了成功回调。

虽然我很欣赏这对 OP 没有帮助,但我发布这个是希望它可以帮助遇到同样问题的其他人。

于 2016-03-13T21:26:26.190 回答