python - 为 Tornado 中的所有请求设置 header

标签 python tornado request-headers

我以这种方式为我的请求设置 header :

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 项目中执行此操作?

最佳答案

您可以编写一个继承自 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")

关于python - 为 Tornado 中的所有请求设置 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42434645/

相关文章:

python - 如何隐藏 QFileSystemModel 上的文件扩展名

python - 读取 tarfile 内的大文件头 (~9GB),无需完全提取

nginx - 在 Tornado v4+ 下,WebSocket 连接被 403 拒绝

cookies - puppeteer 中缺少请求 header

html - 如何阻止 html 网络下载相同的图像?

python - 为什么 key 会是:value pair not be added to a Dictionary?

Python:如何从字典中打印某些值

python - 如何使用用于 python-tornado 的 Facebook graph api 读取 facebook 用户的电子邮件?

python - 参数化 Tornado RequestHandler

node.js - Express.js 和请求 : Headers unexpectedly reset themselves