gpt4 book ai didi

angular - 为某些调用禁用 Angular HttpInterceptor

转载 作者:行者123 更新时间:2023-12-03 23:35:05 25 4
gpt4 key购买 nike

我有一个带有 HttpInterceptor 的 Angular 应用程序,它捕获 http 错误以显示一些对话框,这对我的所有应用程序都是通用的。

我想禁用某些特定调用的拦截器,但我更喜欢禁用调用 http 的默认行为,而不是将异常写入拦截器。
有人发现这个问题吗?

如果需要,我可以举一个更具体的例子。

问候

戴维德

最佳答案

您可以使用 HttpBackend去做这个。

描述:注入(inject)时,HttpBackend 直接将请求分派(dispatch)到后端,而不通过拦截器链。

使用:您可以使用相同的 HttpClient通过从 @angular/common/http 导入

例子:

import { HttpClient, HttpBackend } from '@angular/common/http';

...

@Injectable({
providedIn: 'root'
})
export class HttpHelperService {

private httpClient: HttpClient;

constructor( httpBackend: HttpBackend) {
this.httpClient = new HttpClient(httpBackend);
}

// use like normal with HttpClient. However, should name it carefully to separate which http request go throught interceptor and which is not
put(path: string, body: Object = {}): Observable<any> {
return this.httpClient.put(
`${this.URL}${path}`,
JSON.stringify(body)
).pipe(catchError(this.formatErrors));
}

....

引用: https://angular.io/api/common/http/HttpBackend

关于angular - 为某些调用禁用 Angular HttpInterceptor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60424072/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com