HtppInterceptor-更改URL

时间:2019-05-01 14:50:46

标签: angular

我有很多http请求,我想用Interceptor更改URL  我正在使用以下代码:

    /** implemented method from HttpInterceptor */
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
    const dupReq = req.clone({ headers: req.headers.set('Authorization', 'Basic YWRtaW46YWRtaW4=') });

    return next.handle(dupReq);
}

constructor(public http: HttpClient) {
    console.log('Hello InterceptorProvider Provider');
}

/** 
 * set url as local or development mode
 */
processUrl(url) {
    console.log('Interceptor.ProcessUrl');
    if (url.search('http://') || url.search('https://')) {
        return url;
    } else {
        return this.url_request + url;
    }
}

1 个答案:

答案 0 :(得分:0)

拦截器拦截应用程序发出的所有HTTP请求。无论业务逻辑如何,拦截器都不应区分,因为它应该拦截请求。业务逻辑决定了被拦截的请求应该做什么。

作为请求的一部分,我们还获得了HTTP方法类型。

因此,仅当HTTP方法为get时,您才可以应用标头。

由于请求是不可变的,因此您必须克隆请求并相应地添加标头。

req.clone({...}); // the header you wish to add.