gpt4 book ai didi

angular - 如何设置{观察: 'response' } option globally in Angular 4. 3+?

转载 作者:太空狗 更新时间:2023-10-29 19:36:03 25 4
gpt4 key购买 nike

第一个想法是使用HttpInterceptor 但是clone(...) 方法的签名不包含observe 选项.除了为每个请求定义 { observe: 'response' } 选项外,我还没有看到替代方案 yet ...

那么,如果有的话,是否有方法来设置 { observe: 'response' } 选项 globally,例如通过 HttpInterceptor?

clone(update: {
headers?: HttpHeaders;
reportProgress?: boolean;
params?: HttpParams;
responseType?: 'arraybuffer' | 'blob' | 'json' | 'text';
withCredentials?: boolean;
body?: T | null;
method?: string;
url?: string;
setHeaders?: {
[name: string]: string | string[];
};
setParams?: {
[param: string]: string;
};
}): HttpRequest<T>;

最佳答案

我知道这个问题很老但是很有趣。

我考虑过重写 httpClient 方法。

您只需重写一次方法。所有的工作都将完成。

例如 GET 方法是这样的:

  overrideGetRequest() {
const httpRequest = this.http.get.bind(this.http);

this.http.get = function get<T = any>(url: string, options?: any): Observable<T> {
let requestOptions = options || {};
if(!('observe' in requestOptions)) {
requestOptions = { ...requestOptions, observe: "response" };
}
return httpRequest(url, requestOptions);
};
}

这是 Stackblitz 示例,我在其中覆盖了 httpClient 的 POST 和 GET 方法。

https://stackblitz.com/edit/angular-interceptors-kknew1?file=app%2Fapp.component.ts

关于angular - 如何设置{观察: 'response' } option globally in Angular 4. 3+?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48543244/

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