首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >对flask的带有html元素值的post请求返回BadRequestKeyError

对flask的带有html元素值的post请求返回BadRequestKeyError
EN

Stack Overflow用户
提问于 2020-12-19 18:16:32
回答 1查看 38关注 0票数 0

我想将span元素的文本值发送到flask <span id="myspan">text</span>

通过ajax post请求

代码语言:javascript
复制
function upload_columns (){
    let spantext =  {
        mainfile_column: $("#myspan").text(),
    };

    return $.ajax({
        type: 'POST',
        url: 'receave_columns',
        data: spantext
    });
}


$(function(){
    $("#mybutton").on("click", ()=>{
        let column_promise = upload_columns();
        column_promise.done(console.log("success"))
    });

});

这是路线

代码语言:javascript
复制
@flask_class.route('/receave_columns', methods=['POST'])
def client_choice():
    client_data = request.form['data']
    return jsonify({"data": client_data})

我得到了这个BadRequestKeyError

代码语言:javascript
复制
werkzeug.exceptions.BadRequestKeyError: 400 Bad Request: The browser (or proxy) sent a request that this server could not understand. KeyError: 'data'

看起来flask看不懂['data']

循环遍历密钥

代码语言:javascript
复制
 for key in client_data.keys():
        for value in client_data.getlist(key):
            print(key, ":", value)

打印正确的值

为什么flask不能从ajax调用data: spantext中读取['data']

EN

回答 1

Stack Overflow用户

发布于 2020-12-19 18:43:07

尝试使用'POST‘方法的if语句:

代码语言:javascript
复制
@flask_class.route('/receave_columns', methods=['GET', 'POST'])
def client_choice():
    if method='POST':
        client_data = request.form['data']
        return jsonify({"data": client_data})

同样,在ajax函数中进行以下更改(注释行):

代码语言:javascript
复制
function upload_columns (){
    let spantext =  {
        mainfile_column: $("#myspan").text(),
    };

    return $.ajax({
        type: 'POST',
        url: 'receave_columns',
        data: {'data': spantext} #amended line
    });
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65368718

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档