POST上的Angular 6 HttpErrorResponse状态为200

时间:2018-12-04 04:18:08

标签: angular api post

使用Angular 6客户端,我访问http://localhost:8082/login以发送usernamepassword并返回令牌。 这是错误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});
  }

我只想返回令牌,就像在邮递员中一样。我尝试了toPromise(),但遇到了更多错误。

2 个答案:

答案 0 :(得分:4)

默认情况下,Angular HttpClient尝试将HTTP响应的主体解析为JSON。 由于您收到的响应正文是纯文本,例如“ Bearer .....”(不是JSON),则JSON解析失败。

您需要告诉HttpClient期望纯文本响应,如下所示:

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

还要注意,由于响应是一个字符串,因此您不应该尝试将其强制转换为用户(不要执行<User>位);外发消息是用户,返回值是一个字符串。

答案 1 :(得分:0)

在 Angular 11+ 中使用 httpOptions = { responseType: 'text' 作为常量, }