如何通过在调用 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 数组传递给服务器:

  1. 您可以 JSON.stringify 在发送之前:

    params: new HttpParams().set('id', JSON.stringify(this.jammers.map(itm => itm.name)))
    

    并在服务器中接受它:

    JSON.parse(yourdata)
    
  2. 或者你可以像下面这样传递:

    let httpParams = new HttpParams();
    this.jammers.forEach(itm => {
      httpParams = httpParams.append('id[]', itm.name);
    });