我正在使用HttpClientModule在Angular 5中进行Web服务调用,它适用于所有200个状态响应。但是,如果有任何400状态,它只是等待并等待并最终获得503状态。
例如,如果我使用正确的用户名/密码调用此函数,它将起作用,我将返回200状态,以及User对象。但是,如果我传入错误的用户名/密码,我不会得到400错误,大约一分钟后我得到503错误。
服务器端日志显示webservice正在为我的请求返回400状态,但没有任何回复。
这是我的网络服务呼叫代码:
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日志:
原来服务器上有一个bug。关于“媒体类型”的日志中出现错误。一旦解决了,服务器现在发回正确的错误响应,我的代码正在处理它们。