У меня есть клиентское приложение, отправляющее объект 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);
});
Ваша ошибка в том, что вы пытаетесь опубликовать «строку», когда вам нужно разместить объект с ключом: значением.
tiltem спас мой день .. спасибо dievardump за помощь .. Наконец-то я получил проблему и смог ее исправить. При использовании типа содержимого JSON массив $ _POST не будет заполняться. Все, что я должен был сделать, чтобы это исправить, было
$rest_json = file_get_contents("php://input");
$_POST = json_decode($rest_json, true);