初步学习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})
所以直接是用方法2了~
参考文章:
https://stackoverflow.com/questions/45210406/angular-4-3-httpclient-set-params