Angular 2 Http 응답 일반 오류 처리기

하비에르 엔리케스

일부 API 호출을 수행 할 Angular 2 앱을 구현하고 있습니다. 어쨌든 일반 오류 처리기를 만들 수 있는지 궁금합니다. 예를 들어 API가 401 코드로 응답하면 사용자를 로그인 경로로 리디렉션하고 싶습니다. 이것이 가능합니까?

감사

사기꾼

모든 서비스에서 사용하는 http 도우미 메서드를 만들었습니다. 적어도 애플리케이션을 통해 모든 http 활동을 중앙 집중화합니다.

오류 세부 정보를 처리하는 것은 때때로-여기 내 질문을 참조하십시오 : Angular 2 http 서비스. 자세한 오류 정보 얻기

UPD : 2016-09-12- 고정 remove방법. Angular http 서비스를 사용하려면 본문을 정의해야합니다. 이 메서드가 존재하는 이유는 delete요청 의 일부로 본문을 전달할 수 있기를 원했고 Angular의 메서드는이를 허용하지 않습니다.

import {Injectable} from '@angular/core';
import {Http, Request, Response, Headers, RequestOptionsArgs, RequestMethod} from "@angular/http";
import {RequestArgs} from "@angular/http/src/interfaces";
import {Observable} from 'rxjs/Observable';
import 'rxjs/add/operator/map';
import 'rxjs/add/operator/catch';
import 'rxjs/add/observable/throw';

@Injectable()
export class JsonHttpHelper {
    protected headers: Headers;

    constructor(private _http: Http) {
        this.headers = new Headers();
        this.headers.append('Content-Type', 'application/json');
        this.headers.append('Accept', 'application/json');
    }

    get(url:string) : Observable<any> {
        return this._http.get(url)
            .map((res: Response) => res.json())
            .catch(this.handleError);
    }

    post(url:string, data:any, args?: RequestOptionsArgs) : Observable<any> {
        if (args == null) args = {};
        if (args.headers === undefined) args.headers = this.headers;

        return this._http.post(url, JSON.stringify(data), args)
            .map((res: Response) => JsonHttpHelper.json(res))
            .catch(this.handleError);
    }

    put(url:string, data:any, args?: RequestOptionsArgs) : Observable<any> {
        if (args == null) args = {};
        if (args.headers === undefined) args.headers = this.headers;

        return this._http.put(url, JSON.stringify(data), args)
            .map((res: Response) => JsonHttpHelper.json(res))
            .catch(this.handleError);
    }

    remove(url: string, data?: any, args?: RequestOptionsArgs): Observable<any> {
        if (args == null) args = {};

        args.url = url;
        args.method = RequestMethod.Delete;
        if (!args.headers) args.headers = this.headers;
        args.body  = data ? JSON.stringify(data) : null;

        return this._http.request(new Request(<RequestArgs>args))
            .map((res: Response) => JsonHttpHelper.json(res))
            .catch(this.handleError);
    }

    private static json(res: Response): any {
        return res.text() === "" ? res : res.json();
    }

    private handleError(error:any) {
        console.error(error);
        return Observable.throw(error);

        // The following doesn't work.
        // There's no error status at least in case of network errors.
        // WHY?!
        //
        // if ( error === undefined) error = null;
        // let errMsg = (error && error.message)
        //     ? error.message
        //     : (error && error.status)
        //         ? `${error.status} - ${error.statusText}`
        //         : error;
        //
        // return Observable.throw(errMsg);
    }
}

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

angular2 – 동일한 응답 오류를 여러 번 처리

분류에서Dev

Ionic Angular : 일반 http 오류 처리기 만들기

분류에서Dev

오류 처리 후 HTTP 응답

분류에서Dev

오류 처리 후 HTTP 응답

분류에서Dev

Angular2 오류 응답 없음

분류에서Dev

angular2 매핑 오류 응답

분류에서Dev

http 응답 Angular2를 통해 반복

분류에서Dev

Ionic2 / Angular2 : 쿼리 페이지에 JSON 응답 표시 오류

분류에서Dev

Angular2 HTTP 응답 데이터가 유형을 준수하지 않는 경우 오류를 어떻게 캡처합니까?

분류에서Dev

Angular 2에서 사용자 지정 HTTP 응답 헤더 읽기

분류에서Dev

angular 2 프리 플라이트에 대한 응답에 잘못된 HTTP 상태 코드 401 오류가 있습니다.

분류에서Dev

Angular 2+ HTTP 요청-성공 및 오류 응답 모두에 대해 최소 기간 동안로드 스피너 표시

분류에서Dev

AngularJS에서 $ http 응답 오류 상태 가져 오기

분류에서Dev

http 응답 오류에서받은 파일을 .pdf로 저장

분류에서Dev

응답 REST에서 파일을 보낼 때 HTTP 204 오류

분류에서Dev

Angular2 ExceptionHandler-오류 개체가 응답인지 확인

분류에서Dev

angular2-jwt.js로 6 설치 오류 응답

분류에서Dev

http 응답 데이터로 작업 할 여러 Angular 모달 가져 오기

분류에서Dev

Ajax MVC 부분적으로 올바른 응답을 반환하지만 오류 처리기를 실행 함

분류에서Dev

Rails : http 응답 값 가져 오기

분류에서Dev

이미지 오류 처리기에서 응답 헤더 읽기

분류에서Dev

chrome.tabs.sendMessage : 오류 처리 응답

분류에서Dev

개조 : 오류 JSON 응답 처리

분류에서Dev

응답으로 인증 오류 처리

분류에서Dev

일반적으로 asp.net VB에서 HTTP 오류 처리

분류에서Dev

Angular는 처리하기 전에 HTTP 오류를 기록합니다.

분류에서Dev

Angular 2의 HTTP GET은 로그인을 위해 HTTP POST에서 수신 된 응답을 트리거합니다.

분류에서Dev

Angular 2 http 게시물이 200을 반환하지만 응답이 반환되지 않습니다.

분류에서Dev

HTTP JSON 응답을 HTML (Ionic2, Angular2, TypeScript, PHP, JSON)로 가져 오는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    angular2 – 동일한 응답 오류를 여러 번 처리

  2. 2

    Ionic Angular : 일반 http 오류 처리기 만들기

  3. 3

    오류 처리 후 HTTP 응답

  4. 4

    오류 처리 후 HTTP 응답

  5. 5

    Angular2 오류 응답 없음

  6. 6

    angular2 매핑 오류 응답

  7. 7

    http 응답 Angular2를 통해 반복

  8. 8

    Ionic2 / Angular2 : 쿼리 페이지에 JSON 응답 표시 오류

  9. 9

    Angular2 HTTP 응답 데이터가 유형을 준수하지 않는 경우 오류를 어떻게 캡처합니까?

  10. 10

    Angular 2에서 사용자 지정 HTTP 응답 헤더 읽기

  11. 11

    angular 2 프리 플라이트에 대한 응답에 잘못된 HTTP 상태 코드 401 오류가 있습니다.

  12. 12

    Angular 2+ HTTP 요청-성공 및 오류 응답 모두에 대해 최소 기간 동안로드 스피너 표시

  13. 13

    AngularJS에서 $ http 응답 오류 상태 가져 오기

  14. 14

    http 응답 오류에서받은 파일을 .pdf로 저장

  15. 15

    응답 REST에서 파일을 보낼 때 HTTP 204 오류

  16. 16

    Angular2 ExceptionHandler-오류 개체가 응답인지 확인

  17. 17

    angular2-jwt.js로 6 설치 오류 응답

  18. 18

    http 응답 데이터로 작업 할 여러 Angular 모달 가져 오기

  19. 19

    Ajax MVC 부분적으로 올바른 응답을 반환하지만 오류 처리기를 실행 함

  20. 20

    Rails : http 응답 값 가져 오기

  21. 21

    이미지 오류 처리기에서 응답 헤더 읽기

  22. 22

    chrome.tabs.sendMessage : 오류 처리 응답

  23. 23

    개조 : 오류 JSON 응답 처리

  24. 24

    응답으로 인증 오류 처리

  25. 25

    일반적으로 asp.net VB에서 HTTP 오류 처리

  26. 26

    Angular는 처리하기 전에 HTTP 오류를 기록합니다.

  27. 27

    Angular 2의 HTTP GET은 로그인을 위해 HTTP POST에서 수신 된 응답을 트리거합니다.

  28. 28

    Angular 2 http 게시물이 200을 반환하지만 응답이 반환되지 않습니다.

  29. 29

    HTTP JSON 응답을 HTML (Ionic2, Angular2, TypeScript, PHP, JSON)로 가져 오는 방법은 무엇입니까?

뜨겁다태그

보관