Angular HTTP POST para PHP: Lidando com valores POST indefinidos
No AngularJS, executar solicitações HTTP POST para endpoints PHP às vezes pode resultar em indefinições Valores POST no lado do servidor. Isso pode ocorrer quando há uma incompatibilidade entre o formato de dados esperado e os dados reais enviados pelo aplicativo Angular.
Para resolver esse problema, é crucial garantir que o cabeçalho Content-Type esteja definido adequadamente. Por padrão, AngularJS define este cabeçalho como "application/json". No entanto, se você estiver enviando dados codificados em formulário, isso precisará ser substituído.
No código fornecido, a linha a seguir define o cabeçalho Content-Type como "application/x-www-form-urlencoded; charset=UTF-8":
$http.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8';
No entanto, isso requer a modificação dos dados enviados para corresponder ao formato codificado no formulário. Em vez de enviar os dados como um objeto, eles precisam ser convertidos em uma string de consulta. Isso pode ser feito usando jQuery.serialize() ou construindo manualmente a string de consulta com encodeURIComponent().
Alternativamente, se preferir usar a funcionalidade $_POST do PHP, você pode manter a configuração de cabeçalho padrão e modificar o Código PHP para ler a entrada bruta do corpo da solicitação e decodificar o JSON. Isso pode ser conseguido com o seguinte código:
$postdata = file_get_contents("php://input"); $request = json_decode($postdata); $email = $request->email; $pass = $request->password;
Ao alinhar o formato dos dados e as configurações do cabeçalho, você pode garantir que os valores POST sejam recebidos corretamente no lado do PHP.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3