Ошибка jbery сохранения модели backbone.js (запрос PUT) - PullRequest
0 голосов
/ 01 ноября 2011

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

1 Ответ

3 голосов
/ 01 ноября 2011

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

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

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

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

Я бы продолжал возвращать объект в теле.

...