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

Flask聊天机器人Ajax表单提交出现404 Not Found错误求助

解决Flask聊天机器人表单提交404错误问题

你的问题根源很明确:前端AJAX请求正在尝试向 /get 地址发送POST请求,但你的Flask后端没有配置对应的路由来处理这个请求,所以触发了404 Not Found错误。如果移除url: "/get",AJAX会默认提交到当前页面的URL,后端返回整个页面的HTML代码,导致聊天框里出现网站副本而非机器人的回复内容。

具体修复步骤:

1. 在Flask后端添加/get路由

在你的Flask应用主文件中,新增一个处理POST请求的/get路由,专门接收用户消息并返回机器人的回复:

from flask import Flask, request

app = Flask(__name__)

# 替换成你的语言模型生成回复的逻辑
def generate_bot_reply(user_input):
    return f"机器人回复:{user_input}"

@app.route('/get', methods=['POST'])
def chat_response():
    # 获取前端发送的消息
    user_msg = request.form.get('msg')
    if not user_msg:
        return "请输入消息内容", 400
    # 调用模型生成回复
    bot_reply = generate_bot_reply(user_msg)
    # 返回纯文本格式的回复(适配前端的data处理逻辑)
    return bot_reply

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

2. 确认路由配置的关键细节

  • 必须指定methods=['POST'],因为前端AJAX使用的是type: "POST"请求方式;
  • 用request.form.get('msg')获取数据,要和前端AJAX中data: {msg: rawText}的键名msg完全匹配;
  • 返回内容保持纯文本即可,这样前端done回调中的data直接就是机器人的回复内容。

3. 前端调试辅助(可选)

可以给AJAX请求添加失败回调,方便排查后续可能出现的问题:

$.ajax({
    data: { msg: rawText },
    type: "POST",
    url: "/get"
}).done(function(data){
    var botHtml = '<div class="d-flex justify-content-start my-4 chatBubble"><div class="msg_container">'
        + data + '<span class="msg_time">' + str_time + '</span></div></div>';
    $("#chatArea").prepend($.parseHTML(botHtml));
}).fail(function(xhr, status, error) {
    console.log("请求失败:", status, error);
    console.log("后端返回内容:", xhr.responseText);
});

完成以上配置后,用户提交表单时会正确请求/get路由,后端返回机器人的回复内容,聊天框就能正常显示预期的对话了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 01:12:47