Как получить код состояния успешного ответа в обработчике в cljs-ajax?

Я успешно получаю ответ от конечной точки, используя 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, оба из которых считаются успешными. Тело ответа — это любой текст, который возвращается в ответе, и не содержит кода состояния, если только запрос не выполнен.

Как я могу определить код состояния ответа?


person Porthos3    schedule 12.04.2017    source источник


Ответы (2)


Похоже, ответ представляет собой карту с такими ключами, как :status, которая содержит 200 для моего теста. Остальные ключи: (:status :failure :response :status-text :original-text)

person slipset    schedule 12.04.2017

Используйте 1_. См. также: https://github.com/JulianBirch/cljs-ajax/issues/57

person saitouena    schedule 24.06.2019