Угловой 6 HttpErrorResponse на POST с 200 статусом - PullRequest
0 голосов
/ 04 декабря 2018

С моим клиентом Angular 6 я получаю доступ к http://localhost:8082/login для отправки username и password и возвращаю токен.Это ошибка enter image description here Обратите внимание, что под error: есть токен, который я хочу.

Вот как это выглядит на Почтальоне enter image description here

И эту функцию я использую в Angular для получения токена с заданным именем пользователя и паролем

validateUser(user:User){


    var reqHeader = new HttpHeaders({ 'Content-Type': 'application/json','No-Auth':'True' });



    return this.httpClient.post<User>(this.apiURL + '/login',user,{headers:reqHeader});
  }

Я хочу просто вернуть токен, как в Postman.Я попытался toPromise(), но у меня есть еще больше ошибок.

1 Ответ

0 голосов
/ 04 декабря 2018

По умолчанию Angular HttpClient пытается проанализировать тело HTTP-ответа как JSON.Поскольку тело ответа, которое вы получаете, представляет собой простой текст, например «Bearer .....», а не JSON, анализ JSON не выполняется.

Вы должны указать HttpClient ожидать ответа в виде простого текста, например так:

this.httpClient.post(this.apiURL + '/login', user, {headers:reqHeader, responseType: 'text'});

Также обратите внимание, что, поскольку ответ является строкой, вы не должны пытаться привести его к пользователю (не делайте бит <User>);Исходящее сообщение - Пользователь, возвращаемое значение - строка.

...