【flask跨域】关于flask跨域的问题

文章讲述了在使用Flask框架开发API时遇到跨域问题,尝试使用flask-cors库未能成功。问题的关键在于Flask默认运行在127.0.0.1这个环回地址上,因此修改app.run()的host参数为0.0.0.0,使得服务可以被其他网络IP访问,从而解决了跨域限制的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题

跨域是很常见的问题,我们采用flask-cors解决,但是未能生效。代码如下:

from flask import Flask, jsonify, make_response
from flask_cors import CORS, cross_origin

app = Flask(__name__)
CORS(app, resources=r"/*")	# 注册CORS, "/*" 允许访问所有api

@app.route('/cmt', methods=['GET'])
def get_cmt():
    context = jsonify(
        code=200,
        data=[
            {"id": 1, "name": '张三', "title": '沙发', "content": "我是1楼"},
            {"id": 2, "name": '李四', "title": '板凳', "content": "我是2楼"},
            {"id": 3, "name": '王五', "title": '茶几', "content": "我是3楼"},
        ])
    return context
    # return func_res(context)

if __name__ == '__main__':
    app.run()

解决方法

在app.run()里面加上参数host=“0.0.0.0”, port=5000

    app.run(host="0.0.0.0", port=5000)

问题得到解决

原理

1、默认启动
在这里插入图片描述
2、0.0.0.0启动
在这里插入图片描述

3、本地ip启动
在这里插入图片描述
可以看到flask默认启动ip是127.0.0.1,是环回地址,所以即便使用flask-cors处理跨域,也不能解决问题。
我们可以将flask启动ip改为本地ip或者0.0.0.0。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值