【问题标题】:Http Post Angular 9 ParamsHttp Post Angular 9 参数
【发布时间】:2021-01-27 12:03:01
【问题描述】:

我尝试在登录方法上发布我的电子邮件和密码,但每次响应后都得到空参数

使用 curl,我发送它并且一切正常

curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post))

$post 在哪里

array('email'=>'some@gmail.com', 'password'=>'somepass')

但是当我尝试从角度发帖时,我什么也没得到

const params = new HttpParams();
params.set('email', 'some@gmail.com');
params.set('password', 'somepass');


this.http.post('https://myurl.com/login', '', {
   params: params
}).subscribe((data) => console.log(data))

【问题讨论】:

    标签: angular ionic-framework curl post httpclient


    【解决方案1】:

    你应该编写如下代码-

    const params = new HttpParams({ fromObject: { email: some@gmail.com, password: somepass, anotherParam: value}});
    

    在您的情况下,以下也可能有效。

    const params = new HttpParams()set('email', 'some@gmail.com').set('password', 'somepass');
    

    您可以在网络选项卡中看到请求标头,如下所示

    【讨论】:

    • 仍然为空值:电子邮件:“”密码:空。 const params = new HttpParams().set('email', 'some@gmail.com').set('password', 'somepass'); this.http.post('myurl.com/login', '', { params: params }).subscribe((data) => console.log(data))
    • 您是否正在检查响应中的值?检查请求负载中的值。如果您没有获得这些参数值作为响应,则后端代码应将这些参数值作为响应返回。在这种情况下,Angular 应用程序无能为力
    • 如何获取请求?
    • 更新了答案。确保查询字符串参数部分中有电子邮件和密码的值
    【解决方案2】:

    解决了!

    需要在body中设置header和params

    const body = new HttpParams()
          .set('email', user.email)
          .set('password', user.password);
    
        this.http.post('https://myurl.com/login',
          body.toString(),
          {
            headers: new HttpHeaders()
              .set('Content-Type', 'application/x-www-form-urlencoded')
          })
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多