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 - 使用凭据的主要内容,如果未能解决你的问题,请参考以下文章

HttpClien Get&Post

2021-04-19 从angularjs 迁移到vue

将 AngularJS 迁移到 Angular 4,5(带演示)[关闭]

如何将此 .NET RestSharp 代码转换为 Microsoft.Net.Http HttpClient 代码?

HttpClien高并发请求连接池 - PoolingHttpClientConnectionManager

如何捕获 URL 参数并基于 url 参数重定向到 angular4 中的其他组件