简体   繁体   English

为龙卷风中的所有请求设置标题

[英]set headers for all requests in tornado

I'm setting headers for my requests this way: 我通过这种方式为我的请求设置标题:

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')

I have to do it for all of my handlers, Is there a way to do it one in whole my Tornado project? 我必须为所有处理程序执行此操作,是否有办法在整个Tornado项目中全部执行此操作?

You can write a handler that is inherited from tornado.web.RequestHandler , then all handlers used as an API can be inherited from this handler. 您可以编写从tornado.web.RequestHandler继承的处理程序,然后可以从该处理程序继承所有用作API的处理程序。 Here is the example below. 这是下面的例子。

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")

As you have done this step, you can totally inherit what BaseHandler can do by writing handlers inherited from BaseHandler . 当你做了这一步,你完全可以继承什么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")

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM