angular – 使用x-www-form-urlencoded的HttpClient POST请求

前端之家收集整理的这篇文章主要介绍了angular – 使用x-www-form-urlencoded的HttpClient POST请求前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试使用x-www-form-urlencodedcontent类型标头发出POST请求,如下所示:
login(username,password): Observable<any> {
    return this.http.post('/login',{
      username: username,password: password
      },{
        headers: new HttpHeaders()
          .set('Content-Type','x-www-form-urlencoded')
      }
      );

不幸的是我的API说我发送了空的用户名和密码。

所以我决定向我的登录端点发一个邮递员请求,看看问题来自哪里,邮递员请求确实返回了用户名和密码。

为什么当我从邮递员发帖时我的API返回我的用户名和密码,当我从我的Angular应用程序发布时,我的API返回空值?有什么我想念的吗?

您将JSON数据发布到API而不是表单数据。
下面的代码段应该可行。
login(username,password): Observable<any> {
  const body = new HttpParams()
    .set('username',username)
    .set('password',password);

  return this.http.post('/login',body.toString(),{
      headers: new HttpHeaders()
        .set('Content-Type','application/x-www-form-urlencoded')
    }
  );
}

猜你在找的Angularjs相关文章