我的客户端应用程序将一个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)
,它也返回空值。
答案 0 :(得分:4)
您的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。
发布一个对象时答案 1 :(得分:0)
tiltem 保存了我的一天..感谢 dievardump 寻求帮助..最后我遇到了问题,能够解决它。使用JSON内容类型时,$ _POST数组将不会填充。我必须做的就是修复它
$rest_json = file_get_contents("php://input");
$_POST = json_decode($rest_json, true);