鉴于一些的Compojure路线:重定向回到原来的页面
(defroutes app-routes
(GET "/" [] (display-some-html))
(GET "/story" [] (display-more-html))
(GET "/classes" [] (display-other-html))
(POST "/delete" [id] (do (delete-some-id-from-db id)
(magic-redirect-function)))
(route/resources "/")
(route/not-found "Not Found"))
假如我能够从/
,/story
,/classes
POST到/delete
。我将如何重定向到POST请求源自的页面?
每次您使用POST进行DELETE操作时,小猫都会死亡。你也可以包括在POST请求的URL重定向到(即当前页面的URL),然后作为deadghost答案demoes到'ring.util.response/redirect'一个呼叫时使用。 – schaueho 2014-09-11 06:47:43
@schaueho POST改变了我的实际代码进行删除。在请求中包含重定向url也是一个很好的解决方案,尽管目前session + middleware解决方案看起来最干净。 – deadghost 2014-09-11 08:05:00
会话的一个潜在问题 - 有一个假设,请求按顺序排列。如果它们并行 - 例如,如果用户在同一浏览器中有几个选项卡打开 - 用户可以重定向到意外页面。重定向URL包含在删除请求中的解决方案没有这个问题。 – ez121sl 2014-09-11 11:50:46