Сериализация формы в Clojurescript
Я отправляю простую маленькую форму через Clojurescript (полученную моим сервером Clojure/Luminus). Если я просто отправлю форму с помощью кнопки отправки, я увижу, что ответ включает в себя такой раздел:
:form-params {__anti-forgery-token TDsE55j9y7d1dT2eWOGnmECMnnNXWo5tIDVzENc9lr1aiJSqOKIVmmmq/XmaC2M6GHN086+VeROwi7up, app-type professorial}
Но когда я публикую его с помощью CLJS-Ajax, я вижу это:
; ...
:body #object[java.io.ByteArrayInputStream 0x23bbfd9d java.io.ByteArrayInputStream@23bbfd9d]
:form-params {}
; ...
Таким образом, форма помещается в ByteArrayInputStream, как только она попадает на сервер, по-видимому. Код ajax/clojurescript выглядит так:
(defn submit-update-form []
(let [form (.getElementById js/document "userform")
url "/update-user"
csrf-token (.-value (.getElementById js/document "token"))]
(.log js/console form)
(POST url {:handler #(js/alert "Submission!")
:content-type "application/x-www-form-urlencoded"
:body form
:headers {:x-csrf-token csrf-token}})
;(.submit form)
false))
Очевидно, мне нужно было бы каким-то образом поместить сериализованное содержимое формы в :form-params сообщения. Как это может быть сделано?
Мой код обработчика, когда я пытаюсь запустить это, очень прост:
(POST "/update-user" req
(println req))