簡體   English   中英

如何在Angular 6的CatchError塊中獲得API錯誤響應?

[英]How do I get API error response in CatchError block in Angular 6?

我是angular和Angular 6的新手。我有一個API,其400錯誤請求錯誤如

POST /register 
{
    "success": false,
    "error": {
        "email": [
            "Enter a valid email address."
        ]
    }
}

我試圖按如下所示的角度調用API

register(username: string, email: string, password, first_name: string, last_name: string) {
        return this.http.post<any>(this.registerURL,
            {"username": username, "password": password, "email": email, "first_name": first_name,
                "last_name": last_name})
            .pipe(map(user => {
                    if (user && user.token) {
                        localStorage.setItem('token', user.token);
                    }
                    return user;
                }),
                catchError((error: any) => {
                    return throwError(error);
                })
            );
    }

我的問題是如何在CatchError塊中獲得API錯誤響應。

您可以按照HttpClient文檔中所述向HttpClient提供options對象來訪問完整的響應。

this.http.get<any>(
this.configUrl, { observe: 'response' });

Blitzstack示例: https ://stackblitz.com/edit/angular-lkxdwj ? file = src%2Fapp%2Fhello.component.ts

帶有標頭和statusCode的響應將作為catchError運算符和訂閱函數的錯誤回調的參數提供。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM