gpt4 book ai didi

javascript - Flask request.get_json() 没有收到来自 $.post() 请求的任何内容

转载 作者:行者123 更新时间:2023-12-01 01:56:19 25 4
gpt4 key购买 nike

我正在尝试在 JavaScript 和 Python 之间通信数据,并且我是通过使用 JSON 变量来实现的,但似乎每当我创建 POST 时,来自 JavaScript 的请求,request.get_json()在Python接收器方法中没有拾取任何东西并打印None当我打印request.get_json()时。

Python 方法的工作原理是将某些内容返回给 JS,但它始终是 None 。我的 $.post() 做错了什么吗?方法?

JavaScript $.post()调用:

var items = {"robotCoor": {"robot_x": 1, "robot_y": 1},
"gridParams": {"goal_y": 0, "size_x": 16, "size_y": 16, "goal_x": 0},
"obsParams": {"obs_x3": 0, "obs_x4": 0, "obs_y4": 0, "obs_x2": 0, "obs_x1": 0, "obs_y1": 0, "obs_y2": 0, "obs_y3": 0},
"aiParams": {"layers": 0, "learning_rate": 0, "speed": 0}
};
var stuff = JSON.stringify(items);
console.log(stuff); #prints the correct thing
$.post("receiver", stuff, function( data ) {
console.log(stuff); #prints the correct thing
alert("Data: " + data); #alerts with "Data: None"
});

Python接收方法:

@app.route("/receiver", methods = ["POST"])
def receiver():
if request.method == "POST":
stuff = request.get_json()
print(stuff) #prints None
stuff = str(stuff)
print(stuff) #prints None

return stuff

最佳答案

在 JavaScript 中,将请求的 Content-Type 设置为 application/json。否则,get_json 将始终返回 None。执行此操作的一种方法是执行以下操作 [1]

$.ajaxSetup({
contentType: "application/json; charset=utf-8"
});

或者,您可以尝试使用 get_json(force=True) [2] 强制 Flask 忽略内容类型。

关于javascript - Flask request.get_json() 没有收到来自 $.post() 请求的任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51012369/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com