Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Clojurescript ajax post始终返回零值_Ajax_Clojure_Clojurescript - Fatal编程技术网

Clojurescript ajax post始终返回零值

Clojurescript ajax post始终返回零值,ajax,clojure,clojurescript,Ajax,Clojure,Clojurescript,我有一个原子,它有一个映射向量来描述我的起始信息,就像这样 (def messages (atom [{:message "Hello world" :user "Foo"} {:message "Ajax is fun" :user "Bar"}])) 我的路线是这样安排的 (defroutes home-routes (GET "/messages" [] (response/edn @messages)) (POST "/add-message" [messag

我有一个原子,它有一个映射向量来描述我的起始信息,就像这样

 (def messages
(atom
[{:message "Hello world"
 :user    "Foo"}
{:message "Ajax is fun"
 :user    "Bar"}])) 
我的路线是这样安排的

(defroutes home-routes

 (GET "/messages" [] (response/edn @messages))
 (POST "/add-message" [message user]

   (response/edn
     (swap! messages conj {:message message :user user}))))
在我的clojurescript文件中我有这个

(defn render-message [{:keys [message user]}]
[:li [:p {:id user} message " - " user]])

(defn render-messages [messages]
(let [messages-div (domina/by-id "messages")]
(destroy-children! messages-div)
(->> messages
    (map render-message)
    (into [:ul])
    template/node
    (append! messages-div))))



(defn by-id [id]
(.getElementById js/document id))

(defn add-message []
(POST "/add-message"

   {:format :edn
    :params {:message (value (by-id "message"))
             :user    (value (by-id "user"))}
    :handler render-messages
    }))


(defn ^:export run [] 


(GET "/messages" {:handler render-messages})

(listen! (by-id "send")
      :click add-message)

) 
还有html

 <html>
 <head></head>
 <body>

 <div id="messages"></div>
 <textarea id="message"></textarea>
 <br/>
 <input type="text" id="user"></input>
 <br/>
 <button id="send">add message</button>


<script type="text/javascript" src="hello.js"></script>
<script type="text/javascript">
  cfi_webservice.home.run();
</script>

</body>
</html>



添加消息 cfi_webservice.home.run();

Render message函数用于将新输入追加到div中,因此,我的问题是,当我单击带有发送id的按钮时,新的li被添加到ul中,但参数为空…它总是为零。我猜我的添加消息功能不正常,因为两个参数都没有发送到/添加消息路由。有人能帮我解决这个问题吗?

而不是:格式:edn我使用了:格式:原始,它正在工作现在。

您是否检查了您的服务器代码是否正常工作,例如使用
curl-X POST
?是的,它正常工作,GET正在打印来自atom的消息,POST也正常工作……但是当我单击按钮发送它们时,我似乎没有得到任何参数。这个答案确实有用!