Отправка данных POST в php с использованием угловых 5

Я пытаюсь вызвать веб-сервис с angular 5 на PHP.

Я использую метод POST, но у меня проблемы с получением данных на стороне PHP.

Отправленные данные отображаются в полезной нагрузке, но не возвращаются на стороне php.

Угловой сервис.тс

this.URL = "http://localhost/angular/WEBSERVICE_PHP/test.php";

const headers = new Headers();
headers.append('Content-Type', 'application/json');
let data = 'visitor_id=55';

return this.http
.post(this.URL,JSON.stringify(data),{
headers: headers
})
.map( Response => console.log(Response) );

PHP PAGE

header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Credentials: true");
header("Access-Control-Allow-Methods: POST, GET");
header('P3P: CP="CAO PSA OUR"'); // Makes IE to support cookies
header('content-type: text/plain');
header("content-type: application/x-www-form-urlencoded");
header("Access-Control-Allow-Headers: Content-Type, Authorization, X-
Requested-With");
header("Access-Control-Max-Age: 172800");

if(isset($_POST))
{
// $post = 'test data';     // This data get sent
//   return $post;
echo $post = $_POST['visitor_id'];
return $post;
}

0

Решение

При «публикации» JSON вы не увидите $_POST,

Вместо этого сделайте это:

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

Если это ДОЛЖНО быть $_POSTВы можете назначить $array в $_POST,

Другое решение со стороны Angular, вместо отправки строки JSON, отправьте правильное сообщение! (Я не англичанин, может кто-то может прокомментировать, и я добавлю код!)

1

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

Других решений пока нет …