Angular4从Http迁移到HttpClient - 使用凭据
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Angular4从Http迁移到HttpClient - 使用凭据相关的知识,希望对你有一定的参考价值。
我们在角度使用HttpModule。
现在我们转移到HttpClient,因为我们听说最好使用它。
一切正常,但是当我们使用HttpModule时,我们有这段代码让chrome将凭证发送到服务器。
constructor(private http:Http)
let _build = (<any>this.http)._backend._browseXHR.build;
(<any>this.http)._backend._browseXHR.build = () =>
let _xhr = _build();
_xhr.withCredentials = true;
return (_xhr);
;
我们不得不在第一次服务中写这个,我们所有的服务都使用凭证。
现在,如果我们使用HttpClient,我们无法“转换”此代码。
我们知道我们可以在每个电话中发送withCredentials:true,但我们想要的东西就像我们拥有的那样,一个地方就足够了所有的电话。
如果使用HttpClient,上面的并行代码是什么?
答案
所以,最后我们刚刚创建了一个基本服务,所有服务都使用这个服务。
基本服务:
@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);
以上是关于Angular4从Http迁移到HttpClient - 使用凭据的主要内容,如果未能解决你的问题,请参考以下文章
将 AngularJS 迁移到 Angular 4,5(带演示)[关闭]
如何将此 .NET RestSharp 代码转换为 Microsoft.Net.Http HttpClient 代码?