Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/452.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么javascript/flask客户端/服务器设置在python端不返回任何值?_Javascript_Jquery_Python_Ajax_Flask - Fatal编程技术网

为什么javascript/flask客户端/服务器设置在python端不返回任何值?

为什么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

我想设置一种简单的方法,在客户端网页中使用javascript与python服务器通信。最终目标是为2-4名玩家创建一个简单的基于web浏览器的游戏,这些玩家可以访问某些页面,并可以在其中做一些事情(并查看由
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)