我有一个API和身份验证详细信息,如下所示。
url = 'https://example.org/details';
uName = 'abc';
pWord = 'def';
我通过使用params
和uName
被声明为pWord
。
params = new HttpParams().set(this.uName, this.pWord);
然后我决定获取所有数据,因此我使用了以下代码。
Data: any = [{
data: []
}];
this.http.get(this.url, this.params).subscribe(
data => {
// res.setHeader('Access-Control-Allow-Origin', 'http://localhost:4200');
this.Data = data as unknown as any [];
console.log(data);
// return res;
},
(err: HttpErrorResponse) => {
console.log(err.message);
}
);
上面的代码给我一个错误:
类型'HttpParams'与类型'{headers没有共同的属性: {[header:string]:字符串|串[]; };观察?参数?:HttpParams | {[参数:字符串]:字符串|串[]; }; reportProgress ?:布尔值; responseType ?:“ json”; withCredentials ?:布尔值; }'。
这似乎是错误according to this link。所以我用了这段代码。
static buildQueryParams(source: Object): HttpParams {
let params: HttpParams = new HttpParams();
Object.keys(source).forEach((key: string) => {
const value: string | number | boolean | Date = source[key];
if ((typeof value !== 'undefined') && (value !== null)) {
params = params.append(key, value.toString());
}
});
return params;
}
但是,这不能解决错误。我该如何解决?