首页 > 解决方案 > 值未在发布请求Angular中传递给正文

问题描述

我是角度的新手。在 ts 文件中,用户名和密码具有值。在 Service 文件中,值被传递给函数而不是 body var body = 'userName=username&password=password';

请帮助解决这个问题。

组件.ts

loginSubmit(){         this.loginservice.login(this.f.username.value,this.f.password.value).subscribe(
                data =>
                {
                    this.objlogindata = data;
                    console.log(this.objlogindata);
                }
            )
          }

服务.ts

login(username:any, password:any){
      var body = 'userName=this.username&password=this.password';
      const header = new HttpHeaders();
      const myheader = header.set('Content-Type', 'application/x-www-form-urlencoded');
      return this.http.post(this.loginUrl,body,{headers: myheader}).pipe(map((response: Response) => {
          let user = response.json();
          console.log(user);
      })
      );
  }

标签: angular

解决方案


我看不到您使用的是哪个版本的 HttpClient,但有 2 个:

  • 旧的 Http,你必须使用response.json()
  • 新的 HttpClient,已经在.json()内部使用,只是抓取响应。

另外,map()是一个数据转换运算符,所以你必须返回结果,像这样

 let user = response.json();
return user;

祝你好运!


推荐阅读