Я недавно начал изучать Clojure, и я хотел создать простое веб-приложение с базовыми функциями CRUD. Я нашел хороший учебник здесь: http://www.xuan-wu.com/2013-09-21-Basic-Web-Application-in-Clojure.Не удалось выполнить запрос POST в Clojure
Запросы GET работать нормально, но когда я пытаюсь пост запрос, я получаю следующее сообщение об ошибке:
Invalid anti-forgery token
В учебнике я уже упоминал ранее, не решает ничего связанные с безопасностью. Я немного искал, и кажется, что мне не хватает какого-то компонента Compojure, который должен генерировать токен для создания запросов POST. В некоторых местах упоминалось, что я должен был произойти автоматически без каких-либо изменений с моей стороны. Я все еще не уверен, что это такое, чего я не хватает. Вот мой код:
(ns myblog.handler
(:require [compojure.core :refer :all]
[compojure.route :as route]
[ring.middleware.defaults :refer [wrap-defaults site-defaults]]
[myblog.views :as views]
[myblog.posts :as posts]
[ring.util.response :as resp]
[ring.middleware.basic-authentication :refer :all]))
(defn authenticated? [name pass]
(and (= name "user")
(= pass "pass")))
(defroutes public-routes
(GET "/" [] (views/main-page))
(route/resources "/"))
(defroutes protected-routes
(GET "/admin" [] (views/admin-page))
(GET "/admin/add" [] (views/add-post))
(POST "/admin/create" [& params]
(do (posts/create params)
(resp/redirect "/admin"))))
(defroutes app-routes
public-routes
(wrap-basic-authentication protected-routes authenticated?)
(route/not-found "Not Found"))
(def app
(wrap-defaults app-routes site-defaults))
Опять же, только запрос POST «/ администратор/создает» не удается с недействительными маркерами ошибки. Любая идея, что я делаю неправильно?
как вы делаете запрос POST? что-то вроде «завиток» или в браузере? – leeor
В браузере.Я отправляю форму/admin/create. –