【问题标题】:ClojureScript AJAX POST to send a json dataClojureScript AJAX POST 发送 json 数据
【发布时间】:2016-11-14 21:24:50
【问题描述】:

我正在尝试在 ClojureScript 中实现 AJAX POST。

以下是我正在使用的代码

(defn handler [response]
     (.log js/console (str response)))

(defn test-post [name email]
   (let [data {:name name :email email}]
   (POST "http://localhost:5000/Add/"
    {
     :format {"Accept" :json}
     :body (.stringify js/JSON (clj->js data))
     :handler handler
     :error-handler (fn [r] (prn r))
     :response-format {"Content-Type" "application/json;charset=utf-8"}
     }
    )))

什么时候调用 Post 方法。在表单上提交?发布请求也命中了 url,但 json 数据不存在。

【问题讨论】:

  • Access-Control-Allow-Originresponse 标头而不是请求标头,在请求中没有用。
  • POST 来自哪里?大概来自某个图书馆?
  • POST 是 cljs-ajax 库的一部分

标签: json ajax clojure clojurescript


【解决方案1】:

我假设您正在使用 cljs-ajax 发送数据。

你真正需要这样的东西:

(let [data {:name name :email email}]
 (POST "/Add"
  {:format :json
   :params data
   :handler handler
   :error-handler (fn [r] (prn r))})))

您可以只传递一个普通的 Clojure 对象作为参数,只需将 :json 设置为数据格式(默认为 :transit)。

第二个问题比较开放,取决于您的设置。我认为最简单的使用是reagent,这是一个不错的example,可以发送表单数据。

【讨论】:

  • 我想我错过了 :header { "Accept" "application/json" :content-type "application/json;charset=utf-8"}
猜你喜欢
  • 2020-01-11
  • 1970-01-01
  • 2011-02-21
  • 1970-01-01
  • 2011-05-22
  • 2012-02-17
  • 2014-11-20
  • 1970-01-01
  • 2018-05-04
相关资源
最近更新 更多