为什么javascript/flask客户端/服务器设置在python端不返回任何值?
我想设置一种简单的方法,在客户端网页中使用javascript与python服务器通信。最终目标是为2-4名玩家创建一个简单的基于web浏览器的游戏,这些玩家可以访问某些页面,并可以在其中做一些事情(并查看由为什么javascript/flask客户端/服务器设置在python端不返回任何值?,javascript,jquery,python,ajax,flask,Javascript,Jquery,Python,Ajax,Flask,我想设置一种简单的方法,在客户端网页中使用javascript与python服务器通信。最终目标是为2-4名玩家创建一个简单的基于web浏览器的游戏,这些玩家可以访问某些页面,并可以在其中做一些事情(并查看由three.js生成的一些图形)。因此,我希望客户端使用javascript,后端使用python(因为python很棒) 我之前的问题是和。现在我又尝试了另一个例子,但还是不起作用 这是完整的代码,index.html: <html> <head> &l
three.js
生成的一些图形)。因此,我希望客户端使用javascript,后端使用python(因为python很棒)
我之前的问题是和。现在我又尝试了另一个例子,但还是不起作用
这是完整的代码,index.html
:
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
<script type="text/javascript">
// setup some JSON to use
var cars = [
{ "make":"Porsche", "model":"911S" },
{ "make":"Mercedes-Benz", "model":"220SE" },
{ "make":"Jaguar","model": "Mark VII" }
];
window.onload = function() {
// setup the button click
document.getElementById("theButton").onclick = function() {
doWork();
};
};
function doWork() {
// ajax the JSON to the server
$.post("receiver", cars, function(){
});
// stop link reloading the page
event.preventDefault();
}
</script>
This will send data using AJAX to Python:<br /><br />
<a href="" id="theButton">Click Me</a>
</body>
</html>
问题在于python代码(此处)中接收的数据是None
我希望您能提供一些解决方法。请参阅以下答案:
问题来自jQuery post请求:当使用$时,默认的mimetype是“application/x-www-form-urlencoded”。post请尝试与contentType“application/json”一起使用,否则Flask将无法知道您发送的数据是json,并且在调用get_json()时将不返回任何数据
另一个想法是使用而不是get_json(),然后解析结果:
data = request.data
dataDict = json.loads(data)
看到这个答案:您必须为request.get_json()将请求的mimetype设置为'application/json'。解决方案建议使用我已经在使用的方法
request.get_json()
。否则,请提供关于如何修复我的代码的确切代码片段。也许它可以工作,但没有打印出来。当我将打印输出重定向到sys.stderr
时,我得到一个错误:TypeError:JSON对象必须是str,而不是'bytes
data = request.data
dataDict = json.loads(data)