解析luminusjson响应

解析luminusjson响应,json,ajax,clojure,clojurescript,Json,Ajax,Clojure,Clojurescript,我想我有一个相当简单的问题。我有一个带有clojurescript和cljs ajax的luminus web项目。我要做的是向我的服务器发送一个ajax请求,并在我的错误处理程序中解析一个json字符串以显示特定的错误消息。我就是不能让它工作。 这是我的代码: Clojurescript: (defn error-handler [response] (js/alert (aget response "message"))) ; (js/alert (:message response

我想我有一个相当简单的问题。我有一个带有clojurescript和cljs ajax的luminus web项目。我要做的是向我的服务器发送一个ajax请求,并在我的错误处理程序中解析一个json字符串以显示特定的错误消息。我就是不能让它工作。 这是我的代码:

Clojurescript:

(defn error-handler [response]
  (js/alert (aget response "message")))
;  (js/alert (:message response ))) neither works here

(defn test-connection []
  (POST "/url"
        {:params        (get-form-data)
         :response-format :json
         :handler       succ-handler
         :error-handler error-handler}))
和我的服务器端代码:

(defn connect-jira []
      {:body {:message "No connection to JIRA. Please check your details."}}
      )

(defroutes jira-routes
           (POST "url" []
                 (connect-jira)))
返回自定义错误消息并用clojurescript解析该消息的惯用方法是什么

更新 我找到了更多的问题。POST请求的成功处理程序和错误处理程序之间存在差异。假设我的服务器端如下所示:

(defn connect-jira []
      {:status 200 :body {:message "No connection to JIRA. Please check your details."}})
(defn succ-handler [{:keys [message]}]
  (.log js/console message))
(defn err-handler [{:keys [response]}]
  (.log js/console (:message response)))
我的成功管理者是这样的:

(defn connect-jira []
      {:status 200 :body {:message "No connection to JIRA. Please check your details."}})
(defn succ-handler [{:keys [message]}]
  (.log js/console message))
(defn err-handler [{:keys [response]}]
  (.log js/console (:message response)))
然后一切正常,正确的消息被记录到控制台。 但是如果我的服务器端看起来像这样(不同的状态):

我调用cljs端的错误处理程序

(defn err-handler [{:keys [message]}]
  (.log js/console message))
但是消息是“空的”


我还试图覆盖服务器端的状态文本,但没有成功。那么,如何从服务器端将消息传递给错误处理程序呢?

您是否正在使用此库进行AJAX调用

如果是这样,您的错误处理程序需要看起来更像这样:

(defn connect-jira []
      {:status 200 :body {:message "No connection to JIRA. Please check your details."}})
(defn succ-handler [{:keys [message]}]
  (.log js/console message))
(defn err-handler [{:keys [response]}]
  (.log js/console (:message response)))

谢谢你的帮助,但是,这并不能解决我真正遇到的问题(我的描述不够恰当,但我现在更新了它)我感觉像疯了,[回应]部分起了作用,但我没有意识到这一点,看看这些例子,应该很清楚-非常感谢。有时候,另一双眼睛会让一切变得不同。我们都去过那里。