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

Ajax成功函数中response.content返回undefined的Flask问题求助

问题排查:Ajax success中response.content返回undefined

你的核心问题是后端POST请求返回的是完整HTML页面,而非前端Ajax期望的JSON数据,导致前端无法读取response.content。

原因分析

当前后端不管是GET还是POST请求,最终都返回render_template('index.html', content=content),这会输出整个HTML页面。而前端Ajax发送请求时,期望后端返回JSON格式的数据,所以response实际是整个HTML文档的字符串,自然没有content属性,打印出来就是undefined。

解决办法

修改后端代码,让POST请求返回JSON格式的内容,GET请求依然返回页面模板:

from flask import Flask, render_template, request, jsonify

app = Flask(__name__)

@app.route('/', methods=['GET', 'POST'])
def index():
    if request.method == 'POST':
        content = request.get_json().get('content')
        print("request" + content) 
        if content == 'Hello! flask':
            content = 'Hello! world'
            print(content + "1")
        else:
            content = 'Hello! flask'
            print(content + "2")
        # POST请求返回JSON数据
        return jsonify({'content': content})
    else:
        content = 'Hello! flask'
        print(content + "3")
        # GET请求返回页面模板
        return render_template('index.html', content=content)

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

前端代码无需修改,因为已经正确设置了contentType: 'application/json',并且发送的是JSON格式的请求体,后端也用request.get_json()正确解析了数据。修改后,按回车键就能正常交替显示文本了。

内容的提问来源于stack exchange,提问作者Avirup Chakraborty

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 06:13:29