Redirect 登录后响铃重定向
我的原始代码是什么样的Redirect 登录后响铃重定向,redirect,clojure,ring,Redirect,Clojure,Ring,我的原始代码是什么样的 (ns ... (:require [ring.util.response :refer [ response redirect])) 这很好,但是用户仍然需要手动导航到其他地方 试图使用 不做任何事情(除了返回空白页) 如何使用ring实现对已知uri的重定向?响应是返回一个主体。 您的代码是(response requri),但是函数response的参数是html正文,而不是uri,您可以使用 像这样 (-> (redirect requri)
(ns ...
(:require [ring.util.response :refer [ response redirect]))
这很好,但是用户仍然需要手动导航到其他地方
试图使用
不做任何事情(除了返回空白页)
如何使用ring实现对已知uri的重定向?
响应是返回一个主体。
您的代码是(response requri)
,但是函数response
的参数是html正文,而不是uri,您可以使用
像这样
(-> (redirect requri)
(assoc :session new-session)
(assoc :headers {"Content-Type" "text/html"}))
ps:如果你正在写一个网站。这是一个控制会话和其他会话的好方法。iPaumian有答案
想分享一个不错的重定向黑客:
(ns foo
(:require [ring.util.response :as response]))
(def requi "/")
(-> (response/redirect requri)
(assoc :session new-session)
(assoc :headers {"Content-Type" "text/html"}))
iPaumian是对的,但是我的工作是删除标题。这是我的代码:
(ns foo
(:require [ring.util.response :as response]))
(defn redirect
"Like ring.util.response/redirect but also accepts key value pairs
to assoc to response."
[url & kvs]
(let [resp (response/redirect url)]
(if kvs (apply assoc resp kvs) resp)))
(redirect "/" :session new-session :headers {"Content-Type" "text/html"})
我的坏朋友,在我原来的帖子里犯了一个错误。I/do/have(重定向请求URI),但它不重定向。。。只是一张空白页。谢谢你的帮助。。。将更多地查看lib noir函数末尾使用了重定向
,因为这是一个命令,而不是一个页面。我不知道您存储的会话。如何验证登录的用户。我查看了lib noir页面,发现(转到(defn redirect…)它告诉我,我可以返回一个响应映射,其效果相同:{:status 302,:body“”:session new session,:headers{“Location”requri}——非常好用。谢谢你的帮助!能否添加一些示例代码以及输出/url栏的外观?
(ns foo
(:require [ring.util.response :as response]))
(defn redirect
"Like ring.util.response/redirect but also accepts key value pairs
to assoc to response."
[url & kvs]
(let [resp (response/redirect url)]
(if kvs (apply assoc resp kvs) resp)))
(redirect "/" :session new-session :headers {"Content-Type" "text/html"})
(:require
[ring.util.response :refer [redirect]])
(defn set-user! [id {session :session}]
(-> (redirect "/home")
(assoc :session (assoc session :user id))))