【发布时间】:2019-08-17 02:49:24
【问题描述】:
我有一个使用 Spring Boot 创建的服务器项目,它返回带有字符串的 ResponseEntity 以发布请求。我希望我的角度应用程序根据响应状态做出反应。
this.httpClient.post(
'http://localhost:8080/users',
{
"username": username,
"email": email,
"password": password
},
{
observe: 'response'
})
.subscribe(response => {
if (response.status === 200) {
alert('Hello!');
}
});
但是使用上面的代码,我收到一个错误记录到控制台通知:
"Http failure during parsing for http://localhost:8080/users"
(status is 200 as expected but alert does not work).
我知道我可以把post的第三个参数改成
{responseType: 'text'}
并摆脱错误,但是我不知道要获取此类响应的状态代码。
有办法吗?
【问题讨论】:
-
您可以在服务器上设置响应对象的状态。
-
正如你所说的,
{responseType: 'text'}会告诉 Angular 不要期望 JSON 响应。并且由于您已经传递了observe: response,您将在订阅中获得完整的 http 响应对象(包括标头)。使用它你可以检查状态码。 -
@RomanC - 在服务器上设置状态
-
@ashish.gd - 不幸的是,正如我所提到的 - 代码包括观察帖子中可见的消息文本有错误,警告“你好!”甚至不显示
标签: javascript angular spring-boot