繁体   English   中英

在请求后的角度中值未传递到主体

[英]Value not getting passed to body in post request Angular

我是新手。 在ts文件中,用户名和密码具有值。 在服务文件中,该值将传递给函数,但不会传递给主体var body = 'userName=username&password=password';

请对此提供帮助。

component.ts

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

服务

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);
      })
      );
  }

body应该是json对象

尝试这样:

var body = { 
 userName=this.username,
 password=this.password'
};

使用HttpClient

 this.http.post(url, body).subscribe((resp: any) => {
      console.log(resp)
      let user = resp
 });

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

  • 旧的Http,您必须使用response.json()
  • 新的HttpClient,已经在内部使用.json() ,只需获取响应即可。

同样, map()是数据转换运算符,因此您必须返回结果,像这样

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

祝好运!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM