title: Angular 6 http post request with x-www-form-urlencoded data
body: <p>I have been trying to make a post request to my backed API to post some data. I have tried this API using postman and it works fine and the data is returned properly. However, when I try to do the same from my ionic-angular app, it doesn't work at all. I have tried most of the methods available on the web, but to no avail.
  I am building this app with Angular v6.0.8 and Ionic framework v4.0.1. The API expects application/x-www-form-urlencoded data in the request body (includes  username, password and grant_type). I have tried using both legacy http and the new httpClient module but no luck. So far, I have tried using URLSearchParams/JSONObject/HttpParams for creating the body of the request. For headers I used HttpHeaders() to send application/x-www-form-urlencoded as Content-Type. None of these methods work.</p>
  
  <p>Can anyone help me here? </p>
  
  <p>PFB one of the methods I've tried so far.</p>
  
  <p>Thanks,
  Atul</p>
  
  <pre><code>import { Injectable } from "@angular/core";
  import { HttpClient, HttpHeaders } from '@angular/common/http';
  
  @Injectable()
  export class AuthService {
  
      constructor(private http: HttpClient) {
  
      }
  
      signin(username: string, password: string){
          const formData = new FormData();
          formData.append('username', username);
          formData.append('password', password);
          formData.append('grant_type', 'password');
  
          this.http.post(apiUrl,formData,
                        {
                            headers: new HttpHeaders({
                              'Content-Type':'application/x-www-form-urlencoded'
                            })
                        }
                      )
                      .subscribe(
                          (res) =&gt; {
                              console.log(res);
                          },
                          err =&gt; console.log(err)
                      );
      }
  }
  </code></pre>