1、vue与tornado框架联通时,出现跨域问题
解决:
1)vue框架使用axios通信
2)tornado框架对报文头进行设置处理
# -*- coding: utf-8 -*-
"""
@Author : Pink
@Time : 12/29/2021 4:05 PM
@Function:
"""
from tornado.web import RequestHandler
class BaseHandler(RequestHandler):
def set_default_headers(self):
origin_url = self.request.headers.get('Origin')
self.set_header("Access-Control-Allow-Origin", origin_url)
self.set_header("Access-Control-Allow-Credentials", "true")
self.set_header("Access-Control-Allow-Headers", "*,x-requested-with,token")
self.set_header('Access-Control-Allow-Methods', 'POST, GET, OPTIONS')
self.set_header("Access-Control-Max-Age", 1000)
self.set_header("Content-type", "application/json")
# vue一般需要访问options方法, 如果报错则很难继续,所以只要通过就行了,当然需要其他逻辑就自己控制。因为vue访问时,会先执行一次预加载,直接放过就好了
def options(self):
pass
class MainHandler(BaseHandler):
def post(self):
...
2、axios发post请求后台接收不到参数
可能是传输格式不正确,在axios中以from data格式传输试下