用tornado StaticFileHandler获取cookie

时间:2014-12-25 12:42:25

标签: python-3.x cookies tornado

我想在获取某些js静态文件时获取用户的会话cookie:

class StaticFileHandler(web.StaticFileHandler):
    @gen.coroutine
    def get(self, path):
        print ('got JS request from %s' % self.request.remote_ip)
        print ('request.cookies : %s' % self.request.cookies)
        super(StaticFileHandler, self).get(path)

但是,Cookie总是None,即使我可以在浏览器中看到它设置了会话cookie。

我在这里做错了什么?在提供像这样的静态文件时是否无法获取cookie?

由于

1 个答案:

答案 0 :(得分:1)

龙卷风文档警告不要覆盖StaticFileHandler get方法:http://tornado.readthedocs.org/en/latest/web.html#tornado.web.StaticFileHandler

"子类应该只覆盖本节中讨论的方法;覆盖其他方法容易出错。由于与compute_etag和其他方法的紧密耦合,覆盖StaticFileHandler.get特别成问题。"

我建议您尝试覆盖StaticFileHandler类的get_content方法:

http://tornado.readthedocs.org/en/latest/web.html#tornado.web.StaticFileHandler.get_content