ClojureScript ブラウザー クライアントと Clojure サーバーの間で Clojure データ構造を簡単に交換する方法を探しています。
現在、フロントエンドに cljs-ajax を使用し、バックエンドにリング/コンポジュア + トランジットミドルウェアを使用しています。
今までは、この方法でサーバーの応答しか得られませんでした。ただし、これは往復コードであり、現時点では問題があります。
クライアント:
(def data {:nested #{(rand-int 1000)}})
(POST "/round" {:params data
:response-format :transit
:format :transit
:handler #(js/alert (= data %))}))
関連するサーバーコードは次のとおりです。
(defroutes main-routes
(POST "/round" {p :params} (do (prn p)
(response p))))
(def app
(-> main-routes
(wrap-transit-body {:keywords? true})
(wrap-transit-response)
(wrap-transit-params)))
このサーバー コードがデータ構造をエコー バックすることを期待していました。ブラウザー開発者ツールは、サーバーの応答が実際には 400 であり、このプレーン テキストであることが明らかになりました。サーバー側prn
では、ルート内の関数によって何も記録されません。
これを修正する方法を知っている人はいますか?