2016-04-17 37 views
0

我有一個AngularJS2應用程序在資源上執行刪除操作。服務器刪除資源並用410-GONE回答。 AngularJS2將此視爲錯誤。我怎樣才能告訴AngularJS2 410是一個正確的答案?如何防止AngularJS2在服務器響應時拋出錯誤410(不見了)

我的代碼:

deleteOrganisatie(id: number) { 
    let headers = new Headers({ 'Content-Type': 'application/json', 'Accept': 'application/json' }); 
    let options = new RequestOptions({ headers: headers }); 
    return this.http.delete(this._url + id, options) 
     .map(res => <Melding>res.json().melding) 
     .catch(this.handleError); 
} 
private handleError(error: Response) { 
    return Observable.throw(error.json().error || 'Server error'); 
} 

不用說,資源是從服務器上刪除。

+0

爲什麼是410不是一個錯誤? –

+0

410意味着資源在您的請求之前被刪除,所以它的錯誤。 – kemsky

+0

聽起來類似於https://github.com/angular/http/issues/52 –

回答

2

您可以通過在handleError方法返回與Observable.of響應這樣做:

deleteOrganisatie(id: number) { 
    let headers = new Headers({ 'Content-Type': 'application/json', 'Accept': 'application/json' }); 
    let options = new RequestOptions({ headers: headers }); 
    return this.http.delete(this._url + id, options) 
    .map(res => <Melding>res.json().melding) 
    .catch(this.handleError); 
} 

private handleError(error: Response) { 
    if (error.status === 410) { 
    return Observable.of(error.json()); 
    } else { 
    return Observable.throw(error.json().error || 'Server error'); 
} 
相關問題