.Subscribe()函数接收值但无法进入功能块

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了.Subscribe()函数接收值但无法进入功能块相关的知识,希望对你有一定的参考价值。

使用rxjs observable从前端调用springboot后端的服务。即使想到使用.subscribe函数来调用这个成功返回值的服务,我也无法进入订阅块,它直接到达块的末尾。

login.component.ts

validate() 
    console.log('need to validate');
    this.loginService.checkLogin(this.userName, this.pwd).subscribe(resp => 
      console.log(resp);
      if (resp === 'success') 
        this.router.navigateByUrl('/home');
      
    , error => 
      this.toastr.error(error.error.message);
    );
  

login.service.ts

export class LoginServiceService 

  url = 'http://localhost:8089/login/check';
  constructor( private http: HttpClient)  

   public checkLogin(userName, password): Observable <any> 
    let headersValue = new HttpHeaders();
    headersValue = headersValue.set('Access-Control-Allow-Origin', '*');
    headersValue = headersValue.set('Content-Type', 'application/json');
    headersValue = headersValue.set('userName', userName);
    headersValue = headersValue.set('password', password);
    return this.http.get<any[]>(this.url,  headers: headersValue );


预期结果:它应该进入订阅块并在控制台中显示resp并输入if块。

实际结果:只显示“需要验证”。

并在错误检查后直接到达块的末尾。

答案

我认为你的问题可能与标题有关。我不确定你是否需要它们,但更具体地说我认为userName和密码根本不属于那里。他们应该是params。我认为以下内容可以帮助您:

public checkLogin(userName, password): Observable <any> 
    let headersValue = new HttpHeaders();
    headersValue = headersValue.set('Access-Control-Allow-Origin', '*');
    headersValue = headersValue.set('Content-Type', 'application/json');
    const params =  userName, password ;
    return this.http.get<any[]>(this.url,  headers: headersValue, params );

以上是关于.Subscribe()函数接收值但无法进入功能块的主要内容,如果未能解决你的问题,请参考以下文章

订阅功能无法正常工作

如何解决无法读取属性错误?

逗号分隔值循环使用硬编码值但不使用参数值

为啥我的 Python 函数打印一个值但返回 None? [关闭]

无法在代码中获取 DropDownList 的文本 - 可以获取值但不能获取文本

使用 get / http / subscribe 的功能不起作用,为啥? [复制]