POSTAR dados JSON para PHP

Meu amigo discute por que o AngularJS envia POST para PHP, mas não pode usar $_POSTpara receber dados.

Eu acho a resposta, porque o padrão do PHP não fez json_decodeo tipo de conteúdo, application/jsonentão o $_POSTnão mostrará nada.

Este é um código simples para verificar o tipo de conteúdo e selecionar um método melhor para analisar os dados.


<?php

$contentType
= explode(';', $_SERVER['CONTENT_TYPE']); // Check all available Content-Type
$rawBody
= file_get_contents("php://input"); // Read body
$data
= array(); // Initialize default data array

if(in_array('application/json', $contentType)) { // Check if Content-Type is JSON
$data
= json_decode($rawBody); // Then decode it
} else {
parse_str
($data, $data); // If not JSON, just do same as PHP default method
}

header
('Content-Type: application/json; charset=UTF-8');
echo json_encode
(array( // Return data
'data' => $data
));