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

AJAX传递span文本至Flask时出现BadRequestKeyError问题求助

问题原因与解决方案

这个错误的核心原因很直白:你AJAX发送的数据键和Flask里尝试读取的键完全不匹配!

具体拆解

  • 你的AJAX代码里,构造的请求数据是:
    let spantext = {
      mainfile_column: $("#myspan").text(),
    };
    
    这意味着传给后端的表单数据,键是mainfile_column,对应的值是span标签里的文本内容。
  • 但你的Flask路由里,却硬要去读request.form['data']——这个data键根本没在请求里出现过,自然会触发BadRequestKeyError。
  • 至于你说遍历能打印出正确值,那是因为遍历的是request.form里实际存在的键值对(也就是mainfile_column和对应的文本),和你尝试读取的data完全是两码事。

修复方案(二选一即可)

方案1:修改Flask代码,匹配AJAX发送的键

把Flask里读取的键改成mainfile_column:

@flask_class.route('/receave_columns', methods=['POST'])
def client_choice():
    client_data = request.form['mainfile_column']
    return jsonify({"data": client_data})

方案2:修改AJAX代码,发送data键

调整spantext对象的键为data:

let spantext = {
  data: $("#myspan").text(),
};

额外小提醒

你的AJAX回调写法有个小坑:

column_promise.done(console.log("success"))

这样写会直接执行console.log("success"),而不是等请求成功后再执行。正确的写法应该传入一个函数:

column_promise.done(() => console.log("success"))

内容的提问来源于stack exchange,提问作者herbert mühlex

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 07:53:42