Angular HttpClient "Http failure during parsing"
You can specify that the data to be returned is not JSON using responseType
.
In your example, you can use a responseType
string value of text
, like this:
return this.http.post(
'http://10.0.1.19/login',
{email, password},
{responseType: 'text'})
The full list of options for responseType
is:
-
json
(the default) text
arraybuffer
blob
See the docs for more information.
if you have options
return this.http.post(`${this.endpoint}/account/login`,payload, { ...options, responseType: 'text' })
I just want to add that you have to omit the generic argument on the get/post method method (.get<T>
).
✔️ This will work:
this.http.get(`https://myapi.com/health`, {responseType: 'text'})
❌ This will not work:
this.http.get<string>(`https://myapi.com/health`, {responseType: 'text'})
The later will produce an error:
The expected type comes from property 'responseType' which is declared here on type '{ headers?: HttpHeaders | { [header: string]: string | string[]; } | undefined; observe: "events"; context?: HttpContext | undefined; params?: HttpParams | { ...; } | undefined; reportProgress?: boolean | undefined; responseType?: "json" | undefined; withCredentials?: boolean | undefined; }'