gpt4 book ai didi

clojure - Compojure POST请求中缺少表单参数

转载 作者:行者123 更新时间:2023-12-03 14:40:21 27 4
gpt4 key购买 nike

我在以下Compojure示例中获取表单参数时遇到问题:

(ns hello-world
(:use compojure.core, ring.adapter.jetty)
(:require [compojure.route :as route]))

(defn view-form []
(str "<html><head></head><body>"
"<form method=\"post\">"
"Title <input type=\"text\" name=\"title\"/>"
"<input type=\"submit\"/>"
"</form></body></html>"))

(defroutes main-routes
(GET "/" [] "Hello World")
(GET "/new" [] (view-form))
(POST "/new" {params :params} (prn "params:" params))
(route/not-found "Not Found"))

(run-jetty main-routes {:port 8088})


提交表单时,输出始终是

params: {}


而且我不知道为什么title参数不在params映射中。

我正在使用Compojure 0.6.2。

最佳答案

您是否考虑到了这一点:


从0.6.0版开始,Compojure不再向路由添加默认的中间件。这意味着您必须在路由中明确添加wrap-params和wrap-cookies中间件。


资料来源:https://github.com/weavejester/compojure

我使用当前设置尝试了您的示例,并且该示例有效。我包括以下内容:require [compojure.handler :as handler](handler/api routes)

关于clojure - Compojure POST请求中缺少表单参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6036733/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com