我正在使用HttpClientModule在Angular 5中进行web服务调用,它对所有200个状态的响应都有效。但是,如果有任何400个状态,它只是等待,并最终获得503状态。
例如,如果我使用正确的用户名/密码调用此函数,它将正常工作,并返回200个状态和User对象。但是,如果我传入了不正确的用户名/密码,我不会得到400错误,大约一分钟后我会得到503错误。
服务器端日志显示but服务向我的请求返回400状态,但没有返回任何内容。
下面是我的web服务调用代码:
login(username: string, password: string): Observable<boolean> {
const url = this.getUrl('/v1/users/login');
const headers = {
headers: new HttpHeaders({'Content-Type': 'application/json', 'transactionId': uuid.v4()})
};
const body = { username, password };
return new Observable<boolean>( observer => {
this.http.post<User>(url, body, headers).subscribe(
(user: User) => {
console.log('login: Success: ', user);
observer.next(true);
},
(err: HttpErrorResponse) => {
console.log('login: Error: ', err);
observer.next(false);
}
);
});
}以下是Chrome Network日志:
发布于 2017-12-16 13:29:20
原来服务器里有个bug。它在日志中得到一个关于“媒体类型”的错误。一旦解决了这个问题,服务器现在可以发送回正确的错误响应,并且我的代码正在处理它们。
https://stackoverflow.com/questions/47826135
复制相似问题