Чтение данных Angular2 POST в PHP

Я хочу подключить мое приложение angular2 к моему PHP-серверу. В идеале я хочу это сделать:

this.http.post('/users/create', {email: email, password: password}); 

Проблема в том, что когда я это делаю, мой $_POST пуст в PHP. Что я должен сделать, чтобы сделать эту работу?

Утилита HTTP с угловым адресом отправляет данные как полезную нагрузку application/json . для чтения таких данных из php, вы должны использовать такой код:

 $data = json_decode(file_get_contents("php://input")); // you can even override the `$_POST` superglobal if you want : $_POST = json_decode(file_get_contents("php://input")); 

если вы хотите отправить свои данные в виде application/x-www-form-urlencoded а затем сможете прочитать его из $_POST файла php's $_POST без каких-либо изменений кода сервера, вам необходимо закодировать свои данные как таковые.

 const body = new URLSearchParams(); Object.keys(value).forEach(key => { body.set(key, value[key]); } let headers = new Headers(); headers.append('Content-Type','application/x-www-form-urlencoded'); this._http.post(this._contactUrl, body.toString(), {headers}).subscribe(res => console.log(res)); 

Я имею в виду, что jQuery, например, работает с объектами $ _POST и json

он не работает с json-объектом, если вы можете читать данные через $_POST , это означает, что он был отправлен как application/x-www-form-urlencoded , а не application/json , параметры заданы как простой js-объект, хотя .. ,

вы можете использовать php: // для данных post с угловым2, подобным этому, и json_decode

 $arr = json_decode(file_get_contents('php://input'),TRUE); echo "<pre>";print_r($arr);exit; 

поэтому этим $ arr печатает весь массив сообщений и использует его в любом месте.