如何在cljs-ajax中获取处理程序中成功响应的状态代码?

时间:2017-04-12 08:39:22

标签: ajax clojure clojurescript http-status-codes

我使用cljs-ajax成功从端点获取响应(如下所示)。但是,我似乎无法在响应处理程序中区分不同的成功状态代码。

(ns mynamespace
  (:require [ajax.core :as ajax]))

(defn start-monitoring []
  (let [handler (fn [[ok response]]
                  (if ok
                    (.log js/console response)
                    (.error js/console (str response))))]
    (ajax/ajax-request {:uri "/myendpoint"
                   :method :get
                   :params {:since (.getTime (js/Date.))}
                   :handler handler
                   :format (ajax/json-request-format)
                   :response-format (ajax/json-response-format {:keywords? true})})))
处理程序中的

“ok”似乎只是一个真/假成功标志,并且不区分200和204状态代码,这两个代码都被认为是成功的。响应正文是响应中返回的任何文本,并且似乎不包含状态代码,除非请求失败。

如何确定回复的状态代码?

2 个答案:

答案 0 :(得分:2)

似乎响应是一个带有:status等键的地图,其中包含200个我的测试。 其余的钥匙是: (:status :failure :response :status-text :original-text)

答案 1 :(得分:0)

使用:response-format (ajax/ring-response-format)。 另请参阅:https://github.com/JulianBirch/cljs-ajax/issues/57