我最近开始使用Angular 2并且很快发现当使用HTTP客户端时,来自服务器的返回代码404最终会拒绝承诺。
这是我服务中的代码:
export class CalculatorService {
private _serviceUrl = 'http://localhost:3000';
private headers = new Headers({'Content-Type': 'application/json'});
constructor(private http: Http) { }
getCode(request: CalculatorRequest) {
return this.http.post(this._serviceUrl, JSON.stringify(request), {headers: this.headers})
.toPromise()
.then(response => response.json() as CalculatorResponse)
.catch(this.handleError);
}
private handleError(error): Promise<any> {
const errMsg = (error.message) ? error.message :
error.status ? `${error.status} - ${error.statusText}` : 'Server Error : Service Unavailable';
if (errMsg != null) {
return Promise.reject(errMsg);
}
}
}
不幸的是,我没有解析promise,而是调用了handleError方法,因为404会导致拒绝。
是否有一种直接的方法来解决返回代码为404的请求?
谢谢!