目录

Angular9 HttpClient设置参数无效问题

初步学习Angular9,在httpclient模块栽了半天。根据官方文档设置ur居然是无效的,比如

    let httpParams = new HttpParams().set('code', 'aaaa');//可以成功设置code  
    httpParams.set('state', 'ccccc'); // 无法设置state

看了stackoverflow的回答后才知道

HttpParams旨在是不可变的。该set和append方法不修改现有的实例。相反,它们返回新实例并应用更改。

所以这里有两种方案:

1、使用 fromString 变量从查询字符串中直接创建 HTTP 参数

const data = {  
      code: this.subInfo.code,  
      state: this.subInfo.state  
    };  
const httpParams = new HttpParams({fromObject: data});

 

2、直接传递对象而不是HttpParams

http.get(url, {params: data})

https://img.qyi.io/2020/12/09/ea45a11babe78.png

所以直接是用方法2了~

参考文章:
https://stackoverflow.com/questions/45210406/angular-4-3-httpclient-set-params