1

Noir 为客户端 302 重定向提供(响应/重定向“url”)。但是如何在 Web 服务器本身内重定向?比如写一个登录页面,如果登录失败,如何重定向到带有消息的错误页面?

(defpage [:post "/error"] {:keys [msg]}
  (layout [:h3 "ERROR:"] [:p msg]))

(defpage [:post "/do-login"] {:keys [user pass]}
  (if (match user pass)
    (login-ok)
    (redirect-to-error-page but how to carry msg)))
4

1 回答 1

0

您可以使用“渲染”发送新页面,请参阅http://webnoir.org/tutorials/forms以获取与您的示例非常相似的示例:

(render "/errorpage" msgid)

消息将作为 id 到达,例如“/errorpage/1001”,您可以使用 :id 表示法获取它,请参阅@dAni 在Noir 渲染函数中的答案导致 NullPointerException以了解如何使用它。您甚至可以命名您的页面!

于 2012-10-31T02:47:34.083 回答