【问题标题】:Angular httpClient not performing network requestAngular httpClient 不执行网络请求
【发布时间】:2019-04-14 17:17:23
【问题描述】:

在我的一个服务类中,我尝试向我的 firebase 身份验证 API 执行 API 请求。服务类如下所示:

import { Injectable } from '@angular/core';
import { HttpClient, HttpHeaders, HttpResponse } from '@angular/common/http';
import { catchError, tap } from 'rxjs/operators';
import { Observable, of } from 'rxjs';

@Injectable({
  providedIn: 'root'
})
export class AuthService {

  private apiKey: string = '[API-Key]';

  private userToken: string;

  login(email: string, password: string): Observable<HttpResponse<string>> {
    console.log('Ich wurde ausgeführt.')
    return this.httpClient.post<string>(`https://www.googleapis.com/identitytoolkit/v3/relyingparty/verifyPassword?key=${this.apiKey}`, 
    {email: email, password: Password, returnSecureToken: true}, {observe: 'response'})
    .pipe(
      tap(
        response => {
          console.log(response); 
          this.userToken = response.idToken;
        }, 
        error => {
          console.log(error);
          return error;
        }
      )

    )
  }

  constructor(private httpClient: HttpClient) { }
}

在同一时刻,如果请求成功执行,我想使用来自 httpClient 发布请求的响应将响应提供的令牌值分配给服务类中的 private userToken: string 变量。

再次结束嚎叫的故事:我的问题是这个网络请求 firebase Auth API 没有被触发,我不知道为什么。此外,我认为我的代码进行响应非常好,可以改进。

谁能帮帮我?非常感谢您,祝您有愉快的一天!

【问题讨论】:

  • 您需要订阅它才能执行请求
  • 你有没有在你的模块中导入httpmodule
  • 如果没有 httpmodule 导入,问题不会是“请求没有被触发”,而是“构建错误”。
  • @jcuypers 我尝试了几次订阅它,但它没有工作,因为我从可观察类型返回了一个对象,并且它不能与订阅一起使用。不要忘记我想在服务本身中分配值。所以我的解决方案是,我不会将响应作为可观察对象返回,但我订阅了服务本身中的响应,这似乎是可行的。非常感谢您的提示!
  • 订阅并不重要,但没有任何订阅,请求不会被触发。

标签: angular httpclient


【解决方案1】:

喜欢在你的组件中使用它

import { OnInit, Component } from '@angular/core'

export class Component implements OnInit { 

   constructor(private authService: AuthService){}

   ngOnInit() {
      this.authService.login(param1, param2).subscribe(result => {}, err => {});
   }


}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-24
    • 1970-01-01
    • 2021-05-26
    • 2023-02-02
    相关资源
    最近更新 更多