将数据从 JavaScript 发送到 Python Flask 时遇到问题

问题描述 投票:0回答:1

我正在运行一个简单的设置,其中应通过 Ajax 将字符串发送到我的 Flask 应用程序,但我收到错误代码 400:错误的请求。

JavaScript 代码:

headers = {
    'Content-type':'application/json',
    'Accept':'application/json'
}

function send(){
    const line = textbox.value;
    $.ajax({
        type: "POST",
        url: "/send",
        data: line,
        headers: headers,
    });
}

Python代码:

@app.route("/send", methods=["POST"])
def print_data():
    data = json.load(request.get_json().get("data"))
    main.FileMan.post_data(str(data))

最后一行是我调用一个名为 main 的 Python 文件并将数据输出到文本文档中。

javascript python ajax flask
1个回答
0
投票

我不确定

textbox.value
的结构是什么,但您需要在发送数据之前对数据进行字符串化,如下所示:

headers = {
    'Content-type':'application/json',
    'Accept':'application/json'
}

function send(){
    const line = textbox.value;
    $.ajax({
        type: "POST",
        url: "/send",
        data: JSON.stringify(line),
        headers: headers,
    });
}

在 Flask 代码中,您已经在使用

request.get_json()
来解析 JSON 数据,因此您需要删除
json.load()
,因为您正在尝试从 POST 请求而不是文件中解析数据。你的 Flask 代码应该如下所示:

@app.route("/send", methods=["POST"])
def print_data():
    data = request.get_json().get("data")
    main.FileMan.post_data(str(data))
}
© www.soinside.com 2019 - 2024. All rights reserved.