Я новичок в javascript/веб-приложении и пытаюсь реализовать свое первое веб-приложение с использованием hunchentoot и backbone.js. Первое, с чем я экспериментировал, это понять, как работают model.fetch() и model.save().
Мне кажется, что model.fetch() запускает запрос «GET», а model.save() вместо этого запускает запрос «POST». Поэтому я написал простой обработчик на hunchentoot, как показано ниже:
(hunchentoot:define-easy-handler (dataset-handler :uri "/dataset") ()
(setf (hunchentoot:content-type*) "text/html")
;; get the request type, canbe :get or :post
(let ((request-type (hunchentoot:request-method hunchentoot:*request*)))
(cond ((eq request-type :get)
(dataset-update)
;; return the json boject constructed by jsown
(jsown:to-json (list :obj
(cons "length" *dataset-size*)
(cons "folder" *dataset-folder*)
(cons "list" *dataset-list*))))
((eq request-type :post)
;; have no idea on what to do here
....))))
Это предназначено для обработки выборки/сохранения модели, соответствующий URL-адрес которой «/ набор данных». Выборка работает нормально, но меня очень смутил save(). Я видел запрос «post», запущенный и обработанный easy-handler, но запрос, похоже, имеет только значимый заголовок, я не могу найти фактический объект json, скрытый в запросе. Итак, мой вопрос
- Как я могу получить объект json из почтового запроса, запущенного model.save(), чтобы для его анализа можно было использовать более позднюю библиотеку json (например, jsown)?
- Что должен ответить hunchentoot, чтобы сообщить клиенту, что «сохранение» прошло успешно?
Я попробовал функцию «пост-параметры» в hunchentoot, и она возвращает nil, и не видел много людей, использующих hunchentoot+backbone.js при поиске в Google. Также полезно, если вы можете направить меня к некоторым статьям/сообщениям в блогах, которые помогут понять, как работает save() backbone.js.
Большое спасибо за ваше терпение!
raw-post-data
правильный ответ. На самом деле я пробовал это, прежде чем задавать вопрос, но снабдил его неправильным аргументом. - person BreakDS   schedule 07.10.2012