【问题标题】:Clojurescript ajax post always returning nil valueClojurescript ajax post 总是返回 nil 值
【发布时间】:2014-05-29 23:58:35
【问题描述】:

我有一个带有地图矢量的原子,它描述了我的起始消息,就像这样......

 (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 但参数为空......它总是 nil。我猜我的添加消息功能不正常,因为两个参数都没有发送到 /add-message 路由。有人可以帮助解决这个问题吗?

【问题讨论】:

  • 您是否检查过您的服务器代码是否有效,例如curl -X POST?
  • 是的,它正在工作,GET 正在打印来自 atom 的消息,并且 post 也在工作......但是当我点击按钮发送它们时,我似乎没有得到任何参数。

标签: ajax clojure clojurescript


【解决方案1】:

我使用的是 :format :raw 而不是 :format :edn,它现在可以工作了。

【讨论】:

  • 这个答案有帮助!
猜你喜欢
  • 1970-01-01
  • 2017-03-28
  • 2015-03-05
  • 2014-08-25
  • 2016-05-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多