我有我的客户端应用程序将json对象发送到php中的服务器。

客户端代码:

 var jacc = JSON.stringify(acc);console.log(acc);
 $http.post($rootScope.url+'signup.php',jacc)
   .then(function(response){console.log(response.data);});

效果很好。

但是在服务器端
 $acc = $_POST["jacc"];
  $code = $_POST["code"];//received later
  if($acc){
     echo 1;//this thing never echoed.
 }
  elseif ($code  && matchCode($code)){
    if(addAcc($acc))
        echo 1;

}
else echo 0 ." failed";
die();

控制台上的输出将始终为“0失败”。尝试将发布请求更改为httpbin.org/post,效果很好。所以问题出在我的PHP脚本上。还尝试了var_dump($_POST),它也返回空值。

最佳答案

您的JavaScript代码应类似于:

var params = { jacc : JSON.stringify(acc) };
// or var params = acc; if acc is already an object with the "jacc" property
$http.post($rootScope.url+'signup.php', params)
   .then(function(response){
       console.log(response.data);
   });

您的错误是您需要发布带有key:value的对象时尝试发布“字符串”。

09-25 18:08