随笔- 310  文章- 1  评论- 0  阅读- 85970 

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!'

  

 

 posted on   boye169  阅读(398)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示