【发布时间】:2019-04-04 17:59:23
【问题描述】:
我正在编写拦截器,这样我就不必处理调用我的 web api 的每个服务中的标头。这样做的问题是,我 99% 的调用需要 1 组特定的标头,但其他 1% 只需要 1 个标头,并且不能与其他存在的标头一起使用。知道了这一点后,我的想法是制作 2 个拦截器,第一个将添加它们都使用的 1 个标头,第二个将添加其余的标头,第二个不包括 1%。
以下是我排除 1% 的方法,这是可行的,但我想看看是否有更好的方法来解决这个问题:
intercept(request: HttpRequest<any>, next:HttpHandler: Observable<HttpEvent<any>> {
let position = request.url.indexOf('api/');
if (position > 0){
let destination: string = request.url.substr(position + 4);
let matchFound: boolean = false;
for (let address of this.addressesToUse){
if (new RegExp(address).test(destination)){
matchFound = true;
break;
}
}
if (!matchFound){
...DO WORK to add the headers
}
}
【问题讨论】:
-
如果是 1%,可能值得考虑创建一个 seperate HTTP client。
标签: javascript angular typescript