前端与后端分处不同的域名,这就涉及到跨域访问数据的问题,因为浏览器的同源策略,默认是不支持两个不同域间相互访问数据,而我们需要在两个域名间相互传递数据,这时我们就要为后端添加跨域访问的支持
安装:
pip install -U flask-cors
允许所有路由上所有域使用CORS
from flask import Flask from flask_cors import CORS app = Flask(__name__) CORS(app) @app.route("/") def helloWorld(): return "Hello, cross-origin-world!"
指定特定的CORS
app = Flask(__name__) cors = CORS(app, resources={r"/api/*": {"origins": "*"}}) @app.route("/api/v1/users") def list_users(): return "user example"
CORS(app)中的参数
CORS(app, origins=None, methods=None, supports_credentials=False) """ origins: 允许来自的来源或原始列表。原点可以是正则表达式,区分大小写的字符串,也可以是星号. 允许来源用于非简单请求的方法或方法列表。类似于django中的CORS_ORIGIN_REGEX_WHITELIST; methods: 跨域请求允许的请求方法,相当于django中的CORS_ALLOW_METHODS; supports_credentials: 为True,允许用户进行经过身份验证的请求。允许跨域提交cookie。 """