Это мой код на стороне клиента. Я использую cljs-ajax для POSTcljs-ajax POST дает 403
(defn persist-state []
(POST "/save" {:params {:state @state}))
Вот мой код на стороне сервера для обработки POST. Я использую compojure.
(POST "/save" req
(let [state (:state (req :params))]
(add-state! state)
{:status 200}))
Когда я запускаю ajax POST, он дает 403 запрещенную ошибку. Как мне обойти это? Не удалось найти что-либо онлайн, чтобы помочь мне.
Edit: Мой промежуточный слой выглядит следующим образом
(def app
(let [handler (wrap-defaults #'routes site-defaults)]
(if (env :dev) (-> handler wrap-exceptions wrap-reload) handler)))
Это было сгенерирован из шаблона в Lein реагента. Я довольно уверен, что моя проблема связана не с установкой токена анти-подделки.
по умолчанию, compojure использует анти-подделку промежуточного программного обеспечения https://github.com/ring-clojure/ring-anti-forgery. у вас есть токен анти-подделки в вашем @state? – mavbozo
нет. Я сделал еще несколько исследований и нашел, что моя проблема связана с этим вопросом [link] (http://stackoverflow.com/questions/20430281/set-ring-anti-forgery-csrf-header-token). –
нам нужно будет увидеть ваше промежуточное ПО. –