Clojure-ajax.core POST
我对来自ajax的帖子有一些问题 我想向我的数据库中添加一个用户,因此我正在使用POST,我想发送的数据的格式是Clojure-ajax.core POST,clojure,clojurescript,Clojure,Clojurescript,我对来自ajax的帖子有一些问题 我想向我的数据库中添加一个用户,因此我正在使用POST,我想发送的数据的格式是{:id:pass}这是我的POST (定义添加用户![user] (POST)/添加用户 {:params user}) 我所要做的就是在这篇文章中输入上面指定的表单中的信息,这样我就可以将其发送到数据库。我知道这篇文章的论点是正确的,对数据库的查询和我的路线都是正确的,但是我在文章中犯了一个错误,我无法找出我的错误 我正在呼叫添加用户按 (defonce fields (atom
{:id:pass}
这是我的POST
(定义添加用户![user]
(POST)/添加用户
{:params user})
我所要做的就是在这篇文章中输入上面指定的表单中的信息,这样我就可以将其发送到数据库。我知道这篇文章的论点是正确的,对数据库的查询和我的路线都是正确的,但是我在文章中犯了一个错误,我无法找出我的错误
我正在呼叫添加用户代码>按
(defonce fields (atom {}))
(defn add-user! [user]
(POST "/add-user!"
{:params user}))
(defn content
[]
[:div
[:div
[:p "Enter Name:"
[:input
{:type :text
:name :name
:on-change #(swap! fields assoc :id (-> % .-target .-value))
:value (:id @fields)}]]
[:p "Enter Pass:"
[:input
{:type :text
:name :pass
:on-change #(swap! fields assoc :pass (-> % .-target .-value))
:value (:pass @fields)}]]
[:input
{:type :submit
:on-click #(do
(add-user! @fields))
:value "Enter"}]]
[:div
[:p "Id is " (:id @fields)]
[:p "Pass is " (:pass @fields)]]])
我对clj文件中数据库的查询是
(defn add-user! [user]
(sql/insert! db :users user))
如果sql是[clojure.java.jdbc:as sql]
这里没有足够的信息来帮助您完全调试它,但是我怀疑您需要修改您的文章:
(defn add-user! [user]
(POST "/add-user!"
{:format :json
:params user}))
如果您不提供:format
,那么cljs ajax默认为发送传输数据,这肯定会混淆需要JSON的服务器
:format
-指定请求主体的格式(传输、JSON等)。还设置适当的内容类型标题。默认值为:运输
,如果未提供。-
在我身上发生了以下代码:
(POST "/admin/tests/load"
{:params {:test-id "83"}
:headers {"x-csrf-token" csrf-field}
:handler (fn [r] (do (.log js/console r) (swap! test-state r)))
:format :json
:response-format :json
:error-handler (fn [r] (prn r))})))
“params”总是显示为空“{}”。然后我试着:
(POST "/admin/tests/load"
{:params {:test-id "83"}
:headers {"x-csrf-token" csrf-field}} )
即使在添加了其他选项之后,一切都开始运转良好。我知道,很奇怪 您已经说过您认为知道的是正确的,但是您没有给出任何示例说明如何调用adduser代码>,并且您尚未确认是否可以使用URL手动执行帖子,并且给出了一个工作帖子及其URL的示例。这样做,包括这些信息,将有助于继续下去。否则,你会要求读者玩猜谜游戏,这似乎是你所做的,一般来说,这不是解决问题的有效方法。这是你的意思,还是你也想看看compojure路线@乔希:你的错误是什么?问题到底出在哪里?不是在数据库中添加用户。如果我尝试添加一个用户,当我检查数据库时,我可以看到一个新用户没有被添加。当您单击提交按钮时,有一个HTTP请求正在向/add user
端点执行?如果是,您是否在服务器中创建了正确的路由?您是否尝试过在服务器端打印或记录一些内容adduser代码>函数以确保正在调用它?