iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 6
0
Modern Web

Angular10 實作教學系列 第 6

NG10鐵人賽 - 6 - 添加 API 的 Request Header 欄位

添加Key到每條 API 的Request Header

api-header-interceptor.ts

headersConfig['token'] 可以在外層使用 if 判別是 去判別 是否添加該 key 進物件中

import { Injectable } from '@angular/core';
import { HttpInterceptor, HttpHandler, HttpEvent, HttpRequest } from '@angular/common/http';
import { Observable } from 'rxjs';

@Injectable()
export class ApiHeaderInterceptor implements HttpInterceptor {

    intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {

    let headersConfig = {
        'api-version': '1',
    };

    headersConfig['token'] = 'youarecoder';

    const request = req.clone({ setHeaders: headersConfig });
        return next.handle(request);
    }
}

core.module.ts

import { HTTP_INTERCEPTORS } from '@angular/common/http';
import { ApiHeaderInterceptor} from './interceptors';

/**
* http攔截器
*/
export const httpInterceptorProviders = [
    { provide: HTTP_INTERCEPTORS, useClass: ApiHeaderInterceptor, multi: true },
];

@NgModule({
    providers: [
        httpInterceptorProviders,
    ]
})
export class CoreModule { }

上一篇
NG10鐵人賽 - 5 - Angular Material 日期使用(5) - 選擇日期並限制下一個日期的選擇
下一篇
NG10鐵人賽 - 7 - 型別介紹 - interface、class、enum
系列文
Angular10 實作教學30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言