0

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では、ルート内の関数によって何も記録されません。

これを修正する方法を知っている人はいますか?

4

0 に答える 0