Tornado重定向更改cookie

时间:2015-02-25 19:16:15

标签: python redirect tornado

我正在使用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执行?

1 个答案:

答案 0 :(得分:0)

龙卷风中重定向的默认HTTP状态代码为302(临时重定向)。这对于POST方法是有问题的,因为302会导致将后期数据重新提交到不同的URI。用户代理通常可以防止这种行为。 HTTP 303状态旨在处理POST请求后的重定向,并且可以在重定向方法中设置状态:

self.redirect('/home', status=303)