一.引入库
pip install flask-cors
二.配置
flask-cors 有两种用法,一种为全局使用,一种对指定的路由使用
1. 使用 CORS函数 配置全局路由
from flask import Flask, request
from flask_cors import CORS
app = Flask(__name__)
CORS(app, supports_credentials=True)
其中 CORS 提供了一些参数帮助我们定制一下操作。
常用的我们可以配置 origins、methods、allow_headers、supports_credentials
2. 使用 @cross_origin
来配置单行路由
from flask import Flask, request
from flask_cors import cross_origin
app = Flask(__name__)
@app.route('/')
@cross_origin(supports_credentials=True)
def hello():
name = request.args.get("name", "World")
return f'Hello, {name}!'
配置参数说明
参数 | 类型 | Head | 默认 | 说明 |
---|---|---|---|---|
resources | 字典、迭代器或字符串 | 无 | 全部 | 配置允许跨域的路由接口 |
origins | 列表、字符串或正则表达式 | Access-Control-Allow-Origin | * | 配置允许跨域访问的源 |
methods | 列表、字符串 | Access-Control-Allow-Methods | [GET, HEAD, POST, OPTIONS, PUT, PATCH, DELETE] | 配置跨域支持的请求方式 |
expose_headers | 列表、字符串 | Access-Control-Expose-Headers | None | 自定义请求响应的Head信息 |
allow_headers | 列表、字符串或正则表达式 | Access-Control-Request-Headers | * | 配置允许跨域的请求头 |
supports_credentials | 布尔值 | Access-Control-Allow-Credentials | False | 是否允许请求发送cookie |
max_age | timedelta、整数、字符串 | Access-Control-Max-Age | None | 预检请求的有效时长 |
总结
在 flask 的跨域配置中,我们可以使用 flask-cors 来进行配置,其中 CORS 函数 用来做全局的配置, @cross_origin 来实现特定路由的配置