Я думаю, что это либо какая-то проблема кодирования в вашем файле JSON, либо какая-то другая проблема вне библиотеки cljs-http
. Я провел небольшой тест, используя новый проект, созданный с помощью lein new figwheel json-client
, и добавил зависимость от [cljs-http "0.1.46"]
к project.clj
Для правильного JSON-файла я перешел на https://api.github.com/users/clojure/repos и сохранил содержимое как resources/public/repos.json
в папке проекта.
Содержимое моего core.clj
файла:
(ns json-client.core
(:require-macros [cljs.core.async.macros :refer [go]])
(:require [cljs-http.client :as http]
[cljs.core.async :refer [<!]]))
(enable-console-print!)
(defn make-remote-call [endpoint]
(go (let [response (<! (http/get endpoint))]
(js/console.log (clj->js (:body response)))))) ;; NOTE: cljs->js
(defonce app-state (atom {:text "Hello world!"}))
;; This content is served by figwheel, configured in project.clj
(make-remote-call "http://0.0.0.0:3449/repos.json")
(defn on-js-reload []
;; optionally touch your app-state to force rerendering depending on
;; your application
;; (swap! app-state update-in [:__figwheel_counter] inc)
)
Примечание : есть только одно изменение в строке, которая регистрируется на консоли (используется clj->js
), но это все.
... когда я запускаю проект с lein figwheel
, это занимает несколько секунд и запускает новую вкладку браузера с проектом, и на консоли я вижу, как она регистрирует содержимое файла JSON: