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))
然后一切正常,将正确的消息记录到控制台。 但如果我的服务器端看起来像这样(不同的statu):
(defn connect-jira []
{:status 500 :body {:message "No connection to JIRA. Please check your details."}})
我在cljs端调用错误处理程序
(defn err-handler [{:keys [message]}]
(.log js/console message))
但是消息是" null"
我还尝试覆盖服务器端的状态文本,但没有成功。那么,如何从服务器端向消息处理程序传递消息?
答案 0 :(得分:1)
您是否正在使用此库进行AJAX调用?
https://github.com/yogthos/cljs-ajax
如果是这样,你的错误处理程序需要看起来像这样:
(defn err-handler [{:keys [response]}]
(.log js/console (:message response)))