我正在使用Tornado服务器,我将currrent用户更改为新用户,然后我想重定向到某个页面。虽然用户已更改,但它不会重定向到此页面,只会在刷新浏览器页面或在站点内导航时进行。
这是代码片段:
class SuperHandler(BaseHandler):
@tornado.web.authenticated
def post(self):
self.clear_cookie("user")
................
self.set_secure_cookie("user", new_user_id)
self.redirect('/home')
在我的控制台中,它为我提供了重定向的成功消息:
[I 150226 19:19:55 web:1728] 200 GET /home (127.0.0.1) 356.00ms
如何让self.redirect
执行?
答案 0 :(得分:0)
龙卷风中重定向的默认HTTP状态代码为302(临时重定向)。这对于POST方法是有问题的,因为302会导致将后期数据重新提交到不同的URI。用户代理通常可以防止这种行为。 HTTP 303状态旨在处理POST请求后的重定向,并且可以在重定向方法中设置状态:
self.redirect('/home', status=303)