Clojurescript ajax帖总是返回零值

时间:2014-05-29 23:58:36

标签: 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" [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>

渲染消息功能用于将新输入附加到div中,所以我的问题是当我点击按钮时发送id新的li被添加到ul但是带有空参数...它总是为零。我在猜我的添加消息功能不正常,因为这两个参数都没有发送到/ add-message route。任何人都可以帮忙解决这个问题吗?

1 个答案:

答案 0 :(得分:2)

而不是:format:edn我用过:format:raw,它现在正在运行。