JavaScript — скрипт PHP не принимает данные GET / POST от клиента, имеющего скрипты AngularJS

У меня есть клиентское приложение, отправляющее объект 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) который также возвращает нулевое значение.

3

Решение

Ваш код 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);
});

Ваша ошибка в том, что вы пытаетесь опубликовать «строку», когда вам нужно разместить объект с ключом: значением.

4

Другие решения

tiltem спас мой день .. спасибо dievardump за помощь .. Наконец-то я получил проблему и смог ее исправить. При использовании типа содержимого JSON массив $ _POST не будет заполняться. Все, что я должен был сделать, чтобы это исправить, было
$rest_json = file_get_contents("php://input");
$_POST = json_decode($rest_json, true);

0

По вопросам рекламы [email protected]