flask接口支持跨域设置方法
在Flask中,可以通过安装flask-cors
扩展来支持跨域请求。下面是使用flask-cors
扩展的示例代码:
1 2 3 4 5 | from flask import Flask from flask_cors import CORS #ip install flask-cors app = Flask(__name__) CORS(app) |
可以通过CORS
扩展的origins
参数来指定允许的来源
1 | CORS(app, origins = 'http://example.com' ) |
单个接口设置
1 2 3 4 5 | @app .route( '/api/some_endpoint' ) @cross_origin (origins = 'http://example.com' , methods = [ 'GET' , 'POST' ]) def some_endpoint(): # 处理接口逻辑 return 'Hello, World!' |
@app.route装饰器与@cross_origin装饰器请求方法冲突问题
如果在@app.route装饰器中定义了请求方法,而在@cross_origin装饰器中也定义了请求方法,那么它们之间会发生冲突。
在Flask中,@app.route装饰器用于指定接口的URL和请求方法。而@cross_origin装饰器用于指定接口是否支持跨域请求以及允许的来源、方法等。
如果在@app.route装饰器中指定了请求方法,那么只有匹配该请求方法的请求才会进入到对应的视图函数中。而@cross_origin装饰器中指定的请求方法只会影响跨域请求的处理,不会影响到接口的请求方法。
例如,如果在@app.route装饰器中指定了methods=['GET'],而在@cross_origin装饰器中指定了methods=['POST'],那么只有GET请求会进入到对应的视图函数中,而跨域请求则不受影响,仍然可以使用POST方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | from flask import Flask from flask_cors import CORS, cross_origin app = Flask(__name__) @app .route( '/api/index' , methods = [ 'GET' ]) @cross_origin (methods = [ 'POST' ]) def index(): if request.method = = 'GET' : # 处理GET请求 return 'Hello, GET!' elif request.method = = 'POST' : # 处理POST请求 return 'Hello, POST!' |
分类:
python / flask
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具