2

私は(jquery postを使用して)javascriptからcompojureにjsonを送信しようとしています。私が間違っているという単純なことがあると確信しています。私のjavascriptファイル(全体)は次のようになります:

$(document).ready(function() {
    $.post("/", "foo", function(){});
});

私のclojureサーバーは次のようになります:

(ns spendy.routes
  (:use compojure.core
        spendy.core
    ring.middleware.json-params
        [hiccup.middleware :only (wrap-base-url)])
  (:require [compojure.route :as route]
            [compojure.handler :as handler]
            [compojure.response :as response]
        [clj-json.core :as json]))

(defroutes main-routes
  (GET "/" [] (index-page))
  (POST "/" [sent-object]
    (println "got:" sent-object "from jquery")
    (json/generate-string (respond-to-ajax (json/parse-string (if sent-object sent-object "")))))
  (route/resources "/")
  (route/not-found "Page not found"))

(def app
  (-> (handler/site main-routes)
      (wrap-base-url)))

ページをロードすると、取得する予定です

取得:jqueryからfoo

代わりに私は得る

取得:jqueryからnil

何が起こっている?

4

2 に答える 2

3
$(document).ready(function() {
    $.post("/", {foo:"foo"}, function(){});
})

clojure側では、POST変数を次の名前で受け取ることができます。foo

于 2011-10-12T04:44:01.777 に答える
0

あなたのアプリの定義は少し奇妙に見えると思います。(ハンドラー/サイトのメインルート)を呼び出し、その値をスレッドマクロのフォームとして使用します。私が見た他のルート定義は次のようになります

(def app 
  (-> main-routes
      wrap-base-url))
于 2011-10-12T14:40:44.280 に答える