登录后响铃重定向
ring redirect after login
(ns ...
(:require [ring.util.response :refer [ response redirect]))
我的原始代码完全一样
(-> (response "You are now logged in! communist party time!")
(assoc :session new-session)
(assoc :headers {"Content-Type" "text/html"}))
效果很好,但用户仍然需要手动导航到其他地方。
正在尝试使用 http://ring-clojure.github.io/ring/ring.util.response.html#var-redirect
(-> (redirect requri)
(assoc :session new-session)
(assoc :headers {"Content-Type" "text/html"}))
不执行任何操作(除了返回空白页)。
如何使用环实现到已知 uri 的重定向?
response
是 return 一具尸体。
你的代码是 (response requri)
,但是函数 reponse
的参数是 html 主体,而不是 uri,你可以使用 this function
像这样
(ns foo
(:require [ring.util.response :as response]))
(def requi "/")
(-> (response/redirect requri)
(assoc :session new-session)
(assoc :headers {"Content-Type" "text/html"}))
ps:如果你正在写网页site.the lib-noir是控制session等的好方法。
ipaomian 有答案。
想要分享一个不错的重定向技巧:
(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"})
ipaomian 是正确的,但我的工作是通过删除 headers。这是我的代码:
(:require
[ring.util.response :refer [redirect]])
(defn set-user! [id {session :session}]
(-> (redirect "/home")
(assoc :session (assoc session :user id))))
(ns ...
(:require [ring.util.response :refer [ response redirect]))
我的原始代码完全一样
(-> (response "You are now logged in! communist party time!")
(assoc :session new-session)
(assoc :headers {"Content-Type" "text/html"}))
效果很好,但用户仍然需要手动导航到其他地方。
正在尝试使用 http://ring-clojure.github.io/ring/ring.util.response.html#var-redirect
(-> (redirect requri)
(assoc :session new-session)
(assoc :headers {"Content-Type" "text/html"}))
不执行任何操作(除了返回空白页)。
如何使用环实现到已知 uri 的重定向?
response
是 return 一具尸体。
你的代码是 (response requri)
,但是函数 reponse
的参数是 html 主体,而不是 uri,你可以使用 this function
像这样
(ns foo
(:require [ring.util.response :as response]))
(def requi "/")
(-> (response/redirect requri)
(assoc :session new-session)
(assoc :headers {"Content-Type" "text/html"}))
ps:如果你正在写网页site.the lib-noir是控制session等的好方法。
ipaomian 有答案。
想要分享一个不错的重定向技巧:
(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"})
ipaomian 是正确的,但我的工作是通过删除 headers。这是我的代码:
(:require
[ring.util.response :refer [redirect]])
(defn set-user! [id {session :session}]
(-> (redirect "/home")
(assoc :session (assoc session :user id))))