Angular HttpParams 对象为空

Héc*_*lva 3 http typescript angular

我正在使用 Angular 版本 11.2.1,我正在尝试发出一个 http 请求,一个带有参数和标头的 Get 请求,问题是,当我 console.log 它们时,它们都是空的,并且python 后端抛出 500 错误。

在此输入图像描述

这是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});

}
Run Code Online (Sandbox Code Playgroud)

我不是 Angular 或 TypeScript 专家,因此任何帮助或建议将不胜感激。

izm*_*dev 6

HttpHeaders 是一个不可变的结构,该set方法不会向参数添加键,它会创建参数的克隆,并在内部添加新键,因此您需要使用该set方法的结果覆盖参数:

 params = params.set('is_enum', '0');
Run Code Online (Sandbox Code Playgroud)

详细信息https://angular.io/api/common/http/HttpHeaders#set