我想为整个Angular 4应用程序使用相同的请求选项。特别是我想传递withCredentials: environment.xhrWithCredentials
请求(基于当前环境)。
但我不认为为每个请求设置选项是个好主意:
this.http.get('/api', {withCredentials: environment.xhrWithCredentials})
有没有办法为整个应用设置一次HttpClient
的默认选项?
答案 0 :(得分:5)
我还没有使用它,但基于https://angular.io/guide/http,您需要拦截所有请求并在那里设置基本属性。
@Injectable()
export class AuthInterceptor implements HttpInterceptor {
constructor() {}
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
const authReq = req.clone({withCredentials: true /*environment.xhrWithCredentials*/});
return next.handle(authReq);
}
}
答案 1 :(得分:0)
您可能想要使用全球服务“ApiService”
public getApi(endpoint:string):Observable<any> {
return this.http.get('/api/'+endpoint, {withCredentials: environment.xhrWithCredentials});
}
然后注入此ApiService而不是Http,并使用您想要的端点调用getApi()。