为龙卷风中的所有请求设置标头
Posted
技术标签:
【中文标题】为龙卷风中的所有请求设置标头【英文标题】: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 项目中做到这一点?
【问题讨论】:
【参考方案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")
【讨论】:
以上是关于为龙卷风中的所有请求设置标头的主要内容,如果未能解决你的问题,请参考以下文章
在flutter http请求中为所有请求设置默认标头的最佳方法