Подтвердить что ты не робот

Backbone model.save() не вызывает обратные вызовы с ошибкой или успешностью

Я пытаюсь обновить запись в БД, поэтому я определяю модель с данными и вызывая метод .save(). Запрос PUT запускается и обновляется запись базы данных. Проблема заключается не в вызове, а в вызове. Что может быть причиной?

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

Изменить: Запрос возвращает объект JSON

4b9b3361

Ответ 1

Просто найденная аналогичная проблема, в которой проблема была решена. Вы должны поместить что-то в качестве первого параметра (я ставлю null, так как моя модель уже была заполнена данными явно) и объект с обратными вызовами как второй. Так что-то вроде;

sessionsModel.save(null, {success:function() {} });

Ответ 2

При поиске по этому вопросу я впервые приземлился на этот SO-поток, который не работал у меня, но, похоже, работал для других, позже я столкнулся с эта ссылка, где кто-то пробовал null вместо {} в качестве первого параметра.

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

так, это сработало для меня. Надеюсь, это тоже поможет вам.

Ответ 3

Сервер должен вернуть объект JSON. Если ответ не является объектом JSON, обратные вызовы не будут срабатывать. Проверьте это решение fooobar.com/questions/55484/...

Ответ 4

У меня была эта проблема, но я боролся, потому что мой сервер отвечал на действительный объект JSON (модель), и я уже использовал null в моем вызове сохранения.

Как я обнаружил (в конечном итоге), до того, как был вызван обратный вызов успеха, возвращаемая модель передается методом проверки. В моем случае у меня было (очевидно, когда вы смотрите в нужном месте) проблему, которая привела к тому, что возвращенная модель считалась недействительной и впоследствии предотвращала обратный вызов успеха.

Хотя я понимаю, что это не помогает OP, я публикую это в надежде, что это поможет кому-то другому, имеющему ту же проблему.