Python Tornado之跨域请求与Options请求

版权声明:powered by 大狼狗郑锴/Moshow魔手 https://blog.csdn.net/moshowgame/article/details/85255982

问题背景

公司的项目是前后端分离,前端Vue+后端JavaSpringBoot为主,部分功能是PythonTornado,那么需要支持一个是跨域以及Options请求。

Option请求

只需要跟处理get一样处理options请求就可以了。vue一般需要访问options方法, 如果报错则很难继续,所以只要通过就行了,当然需要其他逻辑就自己控制。

#COM串口
class SerialHandler(BaseHandler):
    #处理GET请求
    def get(self):
        self.write('血压监测结果为:')
        #省略其他逻辑
    #处理OPTIONS请求
    def options(self):
        #返回方法1
        #self.set_status(204)
        #self.finish()
        #返回方法2
        self.write('{"errorCode":"00","errorMessage","success"}')

跨域请求

既然是前后端分离,那就肯定会遇到cros跨域请求难题,可以设置一个BaseRequest,然后继承即可。


class BaseHandler(tornado.web.RequestHandler):
    #blog.csdn.net/moshowgame 解决跨域问题
    def set_default_headers(self):
        self.set_header('Access-Control-Allow-Origin', '*')
        self.set_header('Access-Control-Allow-Headers', '*')
        self.set_header('Access-Control-Max-Age', 1000)
        #self.set_header('Content-type', 'application/json')
        self.set_header('Access-Control-Allow-Methods', 'POST, GET, OPTIONS')
        self.set_header('Access-Control-Allow-Headers',#'*')
                        'authorization, Authorization, Content-Type, Access-Control-Allow-Origin, Access-Control-Allow-Headers, X-Requested-By, Access-Control-Allow-Methods')

猜你喜欢

转载自blog.csdn.net/moshowgame/article/details/85255982
今日推荐