通过AJAX将字典从JS发送到Flask

时间:2019-05-08 03:08:02

标签: javascript python flask

我正尝试通过AJAX将字典格式的数据从客户端JavaScript发送到服务器后端。它正在运行,但是在Python端接收到的数据不是我期望的。

>>> b'new+class=some_valaue&document+id=1234567'

我希望得到的是:

{'new class': 'some_value', 'document id': 1234567}

我的JavaScript

    $.ajax({
            url: '/reclassify',
            data: {'new class': 'some_value',
            'document id': 1234567,},
            type: 'POST',
            success: function(response){
                console.log(response);
            },
            error: function(error){
                console.log(error);
            }
        });

我的Python /烧瓶

@app.route('/reclassify', methods=['POST'])
def reclassify():
    data = request.get_data()
    print(data)
    return 'success'

我还没有任何POST语句,因为我仍在尝试找出如何以正确的格式发送数据。

1 个答案:

答案 0 :(得分:0)

Python

@app.route('/reclassify', methods=['POST'])
def reclassify():
    if request.method == 'POST':
        data = request.get_json()
        print(data)

    return '', 200

JS

    function updateClassifier(e, id) {
        let newClassData = {
        'new class': 'some_value',
            'document id': 1234567,
        }

    $.ajax({
            url: '/reclassify',
            contentType: "application/json;charset=utf-8",
            data: JSON.stringify({newClassData}),
            dataType: "json",
            type: 'POST',
            success: function(response){
                console.log(response);
            },
            error: function(error){
                console.log(error);
            }
        });
}

python输出

{'newClassData': {'new class': 'some_value', 'document id': '1234567'}}