You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React JS调用Flask后端接口解析JSON出现undefined问题求助

问题定位与解决方案

你的问题出在Flask接口的响应返回方式上:

问题原因

你直接用Response(response_body, ...)返回Python字典,但Flask的Response构造函数需要接收字符串/字节类型的响应体。直接传入字典时,Python会将其转换为带单引号的字符串(比如"{'test123': '123', ...}"),这不符合JSON的语法规范(JSON要求键值对用双引号)。axios接收到这种非法JSON后,无法正确解析为JavaScript对象,导致response.data不是预期的结构,所以response.data.about输出undefined。

修复方案

有两种简单的修复方式:

方案1:使用Flask的jsonify函数

jsonify会自动将Python字典序列化为合法的JSON字符串,并设置正确的Content-Type: application/json响应头:

from flask import Flask, jsonify

app = Flask(__name__)

@app.route('/profile')
def test():
    response_body = {
        "test123": "123",
        "name": "Owen!",
        "about": "about!"
    }
    print(f"response is {response_body}")
    return jsonify(response_body), 200

方案2:直接返回字典(Flask 2.0+支持)

Flask 2.0及以上版本支持直接返回Python字典,框架会自动完成JSON序列化和响应头设置:

from flask import Flask

app = Flask(__name__)

@app.route('/profile')
def test():
    response_body = {
        "test123": "123",
        "name": "Owen!",
        "about": "about!"
    }
    print(f"response is {response_body}")
    return response_body, 200

验证建议

修复后可以打开浏览器开发者工具的Network面板,查看/profile接口的返回内容,确认是标准的双引号JSON格式,同时检查响应头的Content-Type是否为application/json。

内容的提问来源于stack exchange,提问作者xs w

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 15:05:27