typescript - objeto HttpParams de Angular vacío
Estoy trabajando con Angular versión 11.2.1, y estoy intentando hacer una solicitud HTTP, una solicitud GET con parámetros y encabezados, el problema es que, cuando los registro en la consola, están vacíos, ambos, y el backend en Python está lanzando un error 500.
esta es la función en el service.ts
getOrigenes(): Observable<any>{
const header = new HttpHeaders();
header.set("Content-Type", "application/json");
header.set("Authorization", "Bearer md53b2b0eef781e8a6aaf7cf0565b780845");
const params = new HttpParams();
params.set('is_enum', '0');
params.set('model', 'tc_interface_format');
params.set('schema', 'acl_koncilia');
const headersArrays = header.keys().map(x => ({ [x]: header.get(x) }));
console.log(JSON.stringify(headersArrays));
const paramsArray = params.keys().map(x => ({ [x]: params.get(x) }));
console.log(JSON.stringify(paramsArray));
return this.http.get('http://127.0.0.1:5000/read', {headers: header, params: params});
}
No soy un experto en Angular o TypeScript, así que cualquier ayuda o consejo sería apreciado.
Respuesta #1
HttpHeaders es una estructura inmutable, el método set no agrega una clave a los parámetros, crea un clon de los parámetros con una nueva clave dentro, por lo que necesitas sobrescribir los parámetros con el resultado del método set:
params = params.set('is_enum', '0');
Detalles https://angular.io/api/common/http/HttpHeaders#set
