Meu amigo discute por que o AngularJS envia POST para PHP, mas não pode usar $_POST
para receber dados.
Eu acho a resposta, porque o padrão do PHP não fez json_decode
o tipo de conteúdo, application/json
então o $_POST
nã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
));