Проблема здесь в том, что Angular по умолчанию отправляет почтовый запрос типа JSON.
Либо вы меняете свой бэкэнд PHP, и вместо этого, используя $_POST
, вы можете прочитать JSON:
<?
..
$JSON = file_get_contents("php://input");
if (!empty($JSON ))
{
$params = json_decode($JSON, true);
}
?>
Или если вы действительно хотите ретранслировать при отправке как x-www-form-urlencoded
Вы можете использовать URLSearchParams
, который автоматически устанавливает тип содержимого на application/x-www-form-urlencoded
:
let body = new URLSearchParams();
body.set('username', username);
body.set('password', password);
this.http.post(this.loginUrl, body).map(...);
Конечно, вы можете сделать это и вручную, если вы правильно закодируете свое тело, как это
let body = `username=${username}&password=${password}`;
но затем вам нужно вручную установить заголовки на application/x-www-form-urlencoded
.
Как это
this.http.post(this.loginUrl, body, { headers: headers }).map(...);