我敢肯定,我一定是做錯了什麼......這裏是Clojure中的相關線路:ring.middleware.json/wrap-json-params將數字解析爲字符串?
(ns command.command-server
(:use [org.httpkit.server :only [run-server]])
(:use [storage.core-storage])
(:use compojure.core)
(:use [command.event-loop :only [enqueue]])
(:require [compojure.handler :as handler]
[compojure.route :as route]
[ring.middleware.json :as middleware]))
(def app
(-> (handler/api app-routes)
(middleware/wrap-json-body)
(middleware/wrap-json-response)
(middleware/wrap-json-params)))
;in app-routes, the rest left out for brevity
(POST "/request" {json :params}
(do
(queue-request json)
(response {:status 200})
))
(defn queue-request [evt]
(let [new-evt (assoc evt :type (keyword (:type evt)))]
(println (str (type (:val1 evt))))
(enqueue new-evt)))
的「的println」接近尾聲時顯示的類型:作爲java.lang.String中VAL1當我從jquery發送以下內容:
$.ajax({
type: "POST",
url: 'http://localhost:9090/request',
data: {type: 'add-request', val1: 12, val2: 50},
success: function(data){
console.log(data);
}
});
那麼我在做什麼錯了?
我沒有在您的代碼中看到任何可能會發生這種情況的內容。我設置了一個簡單的例子來嘗試重現問題,但我無法做到。你能提供更多的細節嗎? – Jeremy
嘗試使用cURL而不是jQuery並查看是否得到不同的結果。 – Jeremy
我當然會。 – user1020853