我们在角度使用HttpModule。
现在我们转移到HttpClient,因为我们听说最好使用它。
一切正常,但是 - 当我们使用HttpModule时,我们有这段代码让chrome将凭证发送到服务器。
axis
我们不得不在第一次服务中写这个,而我们所有的服务都使用凭证。
现在,如果我们使用HttpClient,我们无法“转换”此代码。
我们知道我们可以在每个电话中发送withCredentials:true,但我们想要的东西就像我们拥有的那样,一个地方足以支持所有电话。
如果使用HttpClient,上面的并行代码是什么?
答案 0 :(得分:1)
所以,最后我们刚刚创建了一个基本服务,所有服务都使用这个服务。
基本服务:
@Injectable()
export class BaseService{
options:any;
constractor(private http:HttpClient){
this.options = new HttpHeaders().set('Content-Type', 'application/json');
}
get(url){
return this.http.get(url,{withCredentials:true})
.catch(err => err);
}
post(url, obj){
return this.http.post(url, obj, {headers: this.options, withCredentials:true})
.catch(err => err);
}
}
在服务中使用基本服务的示例:
@Injectable()
export class CarService{
constractor(private baseService:BaseService){}
getCarDetails(carNumber:number){
let url = `${BASE_URL}/GetCar/${carNumber}`;
return this.baseService.get(url);
}
updateCar(carDetails:Car){
let url = `${BASE_URL}/UpdateCar`;
return this.baseService.post(url, carDetails);
}
}