【发布时间】:2021-05-30 22:51:02
【问题描述】:
我有一个服务来发出 HTTP 请求,如下所示。我正在尝试在服务的请求标头中添加动态内容类型。
如何在apiCall 函数中添加内容类型作为额外参数?
@Injectable()
export class AjaxService {
constructor(private _http: HttpClient) {}
apiCall(
data: any,
url: string,
method: 'DELETE' | 'GET' | 'HEAD' | 'POST' | 'JSONP' | 'PUT',
isRawUrlFormat: boolean = false
) {
if (isRawUrlFormat === false) {
url = environment.apiUrl + '/' + url;
}
let request$: Observable<any>;
switch (method) {
case 'GET':
request$ = this._http.get(url, { observe: 'response' });
break;
case 'POST':
request$ = this._http.post(url, data, { observe: 'response' });
break;
case 'PUT':
request$ = this._http.put(url, data, { observe: 'response' });
break;
default:
request$ = this._http.request(method, url, {
observe: 'response'
});
}
return request$.pipe(
map((apiResult: HttpResponse<any>) => {
const responseObject = apiResult.body;
return responseObject;
})
);
}
}
【问题讨论】:
标签: angular angular-http-interceptors