序列化形式Clojurescript
我提交通过Clojurescript一个简单的,小的形式(通过我的Clojure/Luminus公司服务器接收)。如果我只是一个提交按钮提交表单,我可以看到,响应包括这样的部分:Clojurescript连载形式AJAX POST
:form-params {__anti-forgery-token TDsE55j9y7d1dT2eWOGnmECMnnNXWo5tIDVzENc9lr1aiJSqOKIVmmmq/XmaC2M6GHN086+VeROwi7up, app-type professorial}
但是,当我与CLJS阿贾克斯后,我看到:
; ...
:body #object[java.io.ByteArrayInputStream 0x23bbfd9d [email protected]]
:form-params {}
; ...
因此,一旦它显示到服务器上,表单就会被放入一个ByteArrayInputStream中。阿贾克斯/ 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))
显然,我需要以某种方式把序列化形式的内容到:该职位的形式-PARAMS。如何才能做到这一点?
我的处理程序代码,我试图让这个启动和运行是死的简单:
(POST "/update-user" req
(println req))
我已经试过这一点,但我的服务器仍然记录了同样的要求:内容 - 键入application/transit + json,form-params {}和一个ByteArrayInputStream作为正文。这是Luminus的默认中间件。 – WorldsEndless
你可以发布你的“/ update-user”的处理程序代码吗? – mavbozo
完成;它只是打印请求。 – WorldsEndless