我正在运行一个简单的设置,其中应通过 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 文件并将数据输出到文本文档中。
我不确定
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))
}