Сохранение модели backbone.js (запрос PUT) ошибка jquery

Я сохраняю модель backbone.js, используя метод model.save(), который запускает запрос PUT на сервер. Сервер видит это нормально и просто устанавливает код состояния для ответа. Пока все хорошо, но когда запрос возвращается (т.е. 8), я получаю «null is null or not object error» где-то в коде jquery. Я предполагаю, что jquery ожидает, что что-то вернется из запроса PUT. Когда я попытался просто напечатать «ok» в потоке ответов на сервере, он не выдал исключение в браузере, а вызвал функцию обратного вызова model.save() error(). Кто-нибудь знает, что здесь происходит?


person michaelr524    schedule 01.11.2011    source источник


Ответы (1)


да. Если вы просто возвращаете заголовок с 200, вы делаете недостаточно.

Нужно вернуть что-то в теле. Backbone ожидает, что это будет JSON вашего объекта. В случае создания это необходимо, потому что вам как минимум нужно возвращать идентификатор вашего объекта, чтобы Backbone знал, как его обновлять. В случае обновления принято (как минимум) возвращать то, что изменилось.

В любом случае вы можете просто вернуть весь объект... это проще всего, и я предпочитаю именно так, потому что это обеспечивает согласованность с сервером.

Я предполагаю, что вы, вероятно, можете просто вернуть {}, и это может быть хорошо для обновлений, но этого будет недостаточно для создания.

Я бы придерживался возврата объекта в теле.

person Brian Genisio    schedule 01.11.2011