发送与瓶码401不重定向重定向
问题描述:
当我做到这一点,它的工作:发送与瓶码401不重定向重定向
return redirect('/admin-login')
但是,当我试图通过在参数HTTP代码,重定向不工作,我去此页:`
return redirect('/admin-login', code=401)
重定向...
你应该被自动重定向到目标网址:/管理员登录。如果 没有点击链接。
我该如何解决这个问题?谢谢
答
消息实际上是有在这两种情况下。 Flask使用Location
标题字段触发重定向。所以当你的浏览器看到它跳过显示内容并立即重定向。
它不适用于code=401
的原因是因为401 Unauthorized
是客户端错误。这会导致浏览器忽略重定向(至少在Chrome中)。
为flask.redirect
烧瓶文档中提到了以下几点:
支持的代码是301,302,303,305和307。
它没有具体提到为什么他们是唯一支持的。但最好的假设是因为浏览器通常不应该重定向,如果它不是3XX status code (Redirection)。
该解决方案因此使用支持的状态代码之一。
答
我的解决方案是创建自定义错误页面,将重定向元添加到标题。这将迫使该页面的页面5秒被打开后,被重定向到首页=}
<meta http-equiv="refresh" content="5;url=/" />
答
解决方案,为我工作:
@app.errorhandler(401)
def page_not_found(e):
return redirect('http://example.com')
以前我一直在努力:
@app.errorhandler(401)
def page_not_found(e):
return redirect('http://example.com', code=401)
...但事实证明,“code = 401”规范是不需要的,如果它在错误处理程序中,没有它,它会自动重定向。
感谢您的帮助 – QuebecSquad
@QuebecSquad欢迎您! – Vallentin