AngularJS и PHP: Проблемы при передаче POST данных

2013-07-24

При использовании стандартного $http-сервиса в AngularJS и метода передачи POST, PHP не получает $_POST массив в привычном для нас виде. Точнее — он вообще пуст.

AngularJS:

$http.post("/ajax.php", {action: "do_something"});

PHP:

echo count($_POST); // 0

Причина в том, что AngularJS не использует формат данных похожий на GET (Content-Type: x-www-form-urlencoded) как это делает jQuery, а передает данные в виде JSON.

Получить данные на сервере можно следующим образом:

PHP:

$post_data = json_decode(file_get_contents('php://input'), true);



Добавить комментарий