【问题标题】:set headers for all requests in tornado为龙卷风中的所有请求设置标头
【发布时间】:2017-07-15 01:11:37
【问题描述】:

我正在为我的请求设置标题:

class ContactInfoHandler(tornado.web.RequestHandler):
    def set_default_headers(self):
        print "setting headers!!!"
        self.set_header("Access-Control-Allow-Origin", "*")
        self.set_header("Access-Control-Allow-Headers", "x-requested-with")
        self.set_header('Access-Control-Allow-Methods', 'POST, GET, OPTIONS')

    def get(self, *args, **kwargs):
        self.write('something')

我必须为我的所有处理程序都这样做,有没有办法在整个 Tornado 项目中做到这一点?

【问题讨论】:

    标签: python tornado request-headers


    【解决方案1】:

    您可以编写一个继承自tornado.web.RequestHandler 的处理程序,然后所有用作API 的处理程序都可以从该处理程序继承。这是下面的示例。

    from tornado.web import RequestHandler
    
    class BaseHandler(RequestHandler):
        def get(self, *args, **kwargs):
            self.write("say something")
    
        def set_default_headers(self, *args, **kwargs):
            self.set_header("Access-Control-Allow-Origin", "*")
            self.set_header("Access-Control-Allow-Headers", "x-requested-with")
            self.set_header("Access-Control-Allow-Methods", "POST, GET, OPTIONS")
    

    当您完成这一步后,您可以通过编写从BaseHandler 继承的处理程序来完全继承BaseHandler 可以做的事情。

    class ContactInfoHandler(BaseHandler):
        def get(self, *args, **kwargs):
            self.write("something")
    
    class TestInfoHandler(BaseHandler):
        def post(self, *args, **kwargs):
            self.write("test result is here")
    

    【讨论】:

      猜你喜欢
      • 2013-05-03
      • 1970-01-01
      • 2016-02-07
      • 2011-07-24
      • 2017-06-16
      • 2013-05-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多