Búsqueda de sitios web

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

Artículos relacionados