关于javascript:当通过post请求发送有效的json数据时,Flask request.get_json()返回None

Flask request.get_json() returning None when valid json data sent via post request

本问题已经有最佳答案,请猛点这里访问。

使用flask构建应用程序。应用程序使用表格结构来显示数据。它的部分功能是从用户指定的表行收集数据。为此,我在每一行上都放置了一个执行一些JS的按钮。JS从行中收集信息,使用json.stringify()转换为json对象,并向相关的flask url发出post请求。

将jsonified对象的值从js文件记录到浏览器控制台,表明它的格式是正确的。post请求与正确的路由联系,但是request.get_json()函数在该路由的方法中返回的值为none。

我已经在烧瓶中设置了一个单独的测试路径。这是相关的代码

来自javascript

1
2
3
4
5
6
    function do_some_work(e) {
        var row_data = get_table_row_data(e);
        row_data = JSON.stringify(row_data);
        console.log(row_data);
        $.post("test", row_data);
    }

get_table_row_data()只返回带有key:value对的对象。日志显示数据是正确格式化的JSON。

这是python代码

1
2
3
4
5
6
#TODO
@application.route('/test', methods=['GET', 'POST'])
def test():
    data = request.get_json()
    print("data is"+format(data))
    return redirect(url_for('index'))

这里的数据显示为无

有什么帮助吗?非常感谢


它是request.json,它将返回JSON数据的字典。要获得值,请使用request.json.get('value_name')。所以你的路线是这样的

1
2
3
4
5
6
#TODO
@application.route('/test', methods=['GET', 'POST'])
def test():
    data = request.json
    print("data is" + format(data))
    return redirect(url_for('index'))