使用fetch api不会将数据发送到服务器

时间:2017-09-02 18:04:33

标签: javascript php json ajax fetch

我正在使用fetch api与服务器进行交互。我正在尝试将数据发送到服务器。我的前端代码如下所示:

<!DOCTYPE html>
<html>
<head>
  <title> Fetch Testing </title>
</head>
<body>
  <button id = "add"> Add </button>

  <script>
    document.getElementById("add").addEventListener("click", function(){
      var options = {
        method: "POST",
        headers: {
          "Content-Type": "application/json"
        },
        body: JSON.stringify({name: "george", email: "george@g.com"})
      };

      fetch("get.php",options)
      .then(function(response){
        console.log(response);
      });
    });

  </script>
</body>
</html>

我的服务器端代码(名为&#34; get.php&#34;)如下所示:

<?php
  echo var_dump($_POST);
?>

因此,您可以看到我发送带有属性名称和电子邮件及其值的json,但似乎没有任何内容发送到服务器,因为打印响应会给出空的json和null文本。

2 个答案:

答案 0 :(得分:0)

将响应的标题设置为json get.php:

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript Math.random()</h2>

<p>Math.random() returns a random number between 0 (included) and 1 (excluded):</p>

<p id="demo"></p>

<script>


var storeArray = []

function callRamdom(){
    var randomNumber = Math.floor(Math.random() * 5);   
    return randomNumber;
}

function randomStore(){ 

    var localValue = callRamdom()
    var status = false;
    for(i=0;i<5; i++){
    var aa = storeArray[i];
        if(aa!=localValue){
            console.log(storeArray[i]+"hhhhh"+ localValue); 
            if(i==4){
                status=true;        
            }

        }   
        else
        break;

    }

    if(status==true){

        storeArray.push(localValue);    
    }
    if(storeArray.length!=5){
        randomStore();
    }   

    return storeArray;
}



document.getElementById("demo").innerHTML = randomStore();


</script>

</body>
</html>

答案 1 :(得分:0)

问题出现在标题中,在Content-type中我应该写

  

应用程序/ x-WWW窗体-urlencoded;

而不是

  

应用/ JSON