如何通过在调用 API
How to set the params in http options with key and value by passing id dynamically as received from the serve r in calling the API
我坚持在调用 API 时在 http 选项中设置参数,它显示的错误是 不需要重载 以及 *一个对象文字在严格模式下不能有多个同名属性。*我想在调用 API.
时设置参数
.service.ts
senrstart( token) {
let httpOptions = {
headers: new HttpHeaders({
'Content-Type': 'application/json',
'Authorization': 'Token ' + token
}),
params: new HttpParams()
params.set('id', this.jammers.name)
}
this.http.get(environment.apiUrl+'/api/sensors/start?id', httpOptions).subscribe(
(senrst:any[])=>{
localStorage.setItem("senrst",JSON.stringify(senrst));
console.log("senrstart:",JSON.parse(localStorage.getItem("senrst")))
.component.ts
senrstart(){
this.senrstart=JSON.parse(localStorage.getItem("senrstart"));
console.log("senrstart",this.senrstart)
}
对于上面的代码,我想通过 key:id 动态传递 id 来设置参数,值是 sensor.name 我从后端收到的。
如果您想将 id 数组传递给服务器:
您可以 JSON.stringify 在发送之前:
params: new HttpParams().set('id', JSON.stringify(this.jammers.map(itm => itm.name)))
并在服务器中接受它:
JSON.parse(yourdata)
或者你可以像下面这样传递:
let httpParams = new HttpParams();
this.jammers.forEach(itm => {
httpParams = httpParams.append('id[]', itm.name);
});
我坚持在调用 API 时在 http 选项中设置参数,它显示的错误是 不需要重载 以及 *一个对象文字在严格模式下不能有多个同名属性。*我想在调用 API.
时设置参数.service.ts
senrstart( token) {
let httpOptions = {
headers: new HttpHeaders({
'Content-Type': 'application/json',
'Authorization': 'Token ' + token
}),
params: new HttpParams()
params.set('id', this.jammers.name)
}
this.http.get(environment.apiUrl+'/api/sensors/start?id', httpOptions).subscribe(
(senrst:any[])=>{
localStorage.setItem("senrst",JSON.stringify(senrst));
console.log("senrstart:",JSON.parse(localStorage.getItem("senrst")))
.component.ts
senrstart(){
this.senrstart=JSON.parse(localStorage.getItem("senrstart"));
console.log("senrstart",this.senrstart)
}
对于上面的代码,我想通过 key:id 动态传递 id 来设置参数,值是 sensor.name 我从后端收到的。
如果您想将 id 数组传递给服务器:
您可以 JSON.stringify 在发送之前:
params: new HttpParams().set('id', JSON.stringify(this.jammers.map(itm => itm.name)))
并在服务器中接受它:
JSON.parse(yourdata)
或者你可以像下面这样传递:
let httpParams = new HttpParams(); this.jammers.forEach(itm => { httpParams = httpParams.append('id[]', itm.name); });