当我尝试使用ajax发送一些变量时,为什么我总是在PHP响应中得到NULL

时间:2019-07-07 12:03:39

标签: php ajax

我想使用ajax将来自javascript的json数据传递给php文件

我已经尝试了很多来自Internet的解决方案,但是都没有用。

这是我的javascript文件(a.html):

    <html>
    <head></head>
    <body>
      <script 
      src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js" 
      </script>
      <script>
        var dataPwm = {dataHeat : 1};
        console.log(dataPwm)

        $.ajax({
          type: "POST",
          url: "b.php",
          data: {dataHeat : 1},
          //cache: false,
          success: function(response){
            console.log(response);
          }
        });
    </script>
    </body>
    </html>

这是我在同一个目录(b.php)中的php文件:

    <?php
        $json_string = $_POST["dataHeat"];
        var_dump(json_decode($json_string));
    ?>

我希望输出为1,但结果为NULL

2 个答案:

答案 0 :(得分:0)

您没有包括Jquery!  用这个就可以了:

<script
      src="https://code.jquery.com/jquery-3.4.1.min.js"
      integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo="
      crossorigin="anonymous">
</script>

您将jquery用于ajax,因此应首先加载它,然后再使用它。就这么简单。除此之外,您的代码是完全正确的。并且您应该在控制台中看到int(1)。

答案 1 :(得分:0)

这里可能有一些问题

  1. 如果浏览器控制台中存在错误,则表明jquery不包含

  2. 您不需要使用json_decode

  3. 如果您希望结果出现在这里

    console.log(响应);

需要做

$dataHeat= $_POST["dataHeat"];
echo $dataHeat;