📅  最后修改于: 2023-12-03 15:40:48.578000             🧑  作者: Mango
本文将介绍在使用 Python Flask 开发 web 应用时,遇到的烧瓶(Flask)中的 CORS 错误的解决办法。
CORS 即跨域资源共享(Cross-Origin Resource Sharing),是 W3C 标准,主要解决的是浏览器的同源策略限制。浏览器的同源策略是指,浏览器只允许来自同一站点(协议、域名、端口号均相同)的脚本访问当前页面中的数据,如果请求跨域时,浏览器会禁止该请求,会返回 CORS 错误。
在 Flask 应用中,同样需要处理跨域请求。Flask 中有一个用于处理跨域的扩展库:flask-cors
。该库可以轻松解决 CORS 问题。
在终端或者命令行窗口中输入以下命令进行安装:
pip install flask-cors
在 Flask 应用中,只需要在需要开启跨域请求的路由函数上添加 @cross_origin()
装饰器即可。
示例代码片段:
from flask import Flask, jsonify
from flask_cors import cross_origin
app = Flask(__name__)
@app.route('/')
@cross_origin()
def index():
data = {'text': 'Hello, World!'}
return jsonify(data)
if __name__ == '__main__':
app.run()
在上述示例代码中,@cross_origin()
装饰器已经开启了该路由函数的跨域请求。如果需要更详细的设置,可以按照以下方式进行配置:
from flask import Flask, jsonify
from flask_cors import CORS
app = Flask(__name__)
CORS(app, resources=r'/*')
@app.route('/')
def index():
data = {'text': 'Hello, World!'}
return jsonify(data)
if __name__ == '__main__':
app.run()
在上述示例代码中,CORS(app, resources=r'/*')
为配置了整个应用开启跨域请求。
使用 Flask 应用时,如果遇到 CORS 错误,就需要使用 flask-cors
扩展库进行跨域请求处理。
使用 flask-cors
扩展库时,只需要在路由函数上添加 @cross_origin()
装饰器即可。
如果需要更详细的设置,可以按照以上方式进行配置。
Flask-CORS Documentation: https://flask-cors.readthedocs.io/en/latest/
Cross-Origin Resource Sharing (CORS) - HTTP | MDN: https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS