Flask跨域方案
title: Flask跨域方案
date: 2022-02-08 16:28:55
categories: 开发
tags: [Flask,跨域]
很容易搜索到多种解决方法,暂先记录几种最简单的。
为response添加headers
- 使用make_response先创建响应,再给响应添加headers
@app.route('/')
def index():
rsp = make_response('Hello world.')
rsp.headers['Access-Control-Allow-Origin'] = '*'
return rsp
- return响应三元组(response, status, headers)
@app.route('/')
def index():
return 'Hello world', 200, {'Access-Control-Allow-Origin':'*'}
注册请求回调添加headers
当大量路由都需要允许跨域时,为每个路由逐个添加变得非常麻烦且不易维护。这时可以使用Flask提供的回调接口为请求注册回调,自动添加Access-Control-Allow-Origin
的header。
@app.after_request
def headers_hook(response):
if request.method == 'GET':
response.headers['Access-Control-Allow-Origin'] = '*'
return response
# 同样可以将app替换为蓝图在局部开启跨域