Compojure从URL绑定HTTP请求参数,但不从POST表单绑定

Geo*_*rge 9 clojure compojure

Compojure不绑定POST表单中的字段.这是我的路线def:

(defroutes main-routes
  (POST "/query" {params :params}
    (debug (str "|" params "|"))
    "OK...")
)
Run Code Online (Sandbox Code Playgroud)

当我发布一个包含字段的表单时,我得到| {} |,即没有参数.顺便说一句,当我去http:// localhost/query?param1 = value1时,params不为空,并且值将打印在服务器控制台上.

表单字段是否有另一个绑定?

zmi*_*ila 14

确保您具有name ="zzz"属性的输入字段,但不仅仅是id ="zzz".

html表单收集所有输入并使用name属性发布它们

my_post.html

<form action="my_post_route" method="post">
    <label for="id">id</label> <input type="text" name="id" id="id" />
    <label for="aaaa">aaa</label> <input type="text" name="aaa" id="aaa" />
    <button type="submit">send</button>
</form>
Run Code Online (Sandbox Code Playgroud)

my_routes.clj

(defroutes default-handler
  ;,,,,
  (POST "/my_post_route" {params :params} 
    (str "POST id=" (params "id") " params=" params))
  ;,,,,
Run Code Online (Sandbox Code Playgroud)

产生反应

id = 21 params = {"aaa""aoeu","id""21"}