How to add headers to my Angular post request?
This may Help You
let headers = new Headers();
headers.append('Content-Type','application/json');
//post data missing(here you pass email and password)
data= {
"email":email,
"password":password
}
return this.http.post('http://localhost:8000/api/v1/authenticate',data,{ headers: headers})
.subscribe(
res =>{
console.log(res);
},
err => {
console.log(err.message);
}
)
The second argument passed in to HttpClient.post
represents the body of the request, but you're providing Headers
here. Use the following to provide the headers correctly:
return this.http.post('http://localhost:8000/api/v1/authenticate', null, options);
I've shown null
in the example for the body, but you probably want that to include the email
and password
properties in some form.
You're also mixing Http
and HttpClient
. If you're going to use HttpClient
(which is now the recommended approach), drop RequestOptions
and Headers
in favour of HttpHeaders
. This becomes:
let headers = new HttpHeaders({
'Content-Type': 'application/json',
'Authorization': this.basic });
let options = { headers: headers };
The rest of the code stays the same. Your createAuthorizationHeader
function needs to use and return an instance of HttpHeaders
. This class is immutable, so append
returns a new object each time it is called. Import HttpHeaders
from @angular/common/http
.