Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 为什么在get请求中尝试发送JSON时出错?_Angular_Typescript - Fatal编程技术网

Angular 为什么在get请求中尝试发送JSON时出错?

Angular 为什么在get请求中尝试发送JSON时出错?,angular,typescript,Angular,Typescript,我在项目中使用angular 10。 我尝试在get请求中发送对象,因此我尝试转换为JSON: getData(dataPlan: Data): Observable<Response<InfoType[]>> { return this.client.get<Response<InfoType[]>>(environment.baseUrl + '/ctrl/getDataPlan', { params: {

我在项目中使用angular 10。 我尝试在get请求中发送对象,因此我尝试转换为JSON:

  getData(dataPlan: Data): Observable<Response<InfoType[]>> {
    return this.client.get<Response<InfoType[]>>(environment.baseUrl + '/ctrl/getDataPlan', {
      params: {
        JSON.stringify(dataPlan)
      }
    });
  }
getData(dataPlan:Data):可观察{
返回此.client.get(environment.baseUrl+'/ctrl/getDataPlan'{
参数:{
JSON.stringify(数据计划)
}
});
}
但我得到了这个错误:

 Type 'Observable<ArrayBuffer>' is not assignable to type 'Observable<Response<InfoType[]>>'.
  Property 'results' is missing in type 'ArrayBuffer' but required in type 'Response<InfoType[]>'.ts(2322)
类型“Observable”不可分配给类型“Observable”。
类型“ArrayBuffer”中缺少属性“results”,但类型“Response”中需要该属性。ts(2322)

知道我为什么会出错吗?

嗯。这里有很多错误

  • 您尝试在get请求中发送对象。如果您在发送请求时同时发送数据,则应发出post请求
  • 参数:{JSON.stringify(dataPlan)}
    。这只是无效的JSON
  • Response
    不知道这指的是什么。让我们把它叫做
    MyType
  • 我假设
    client
    HttpClient
  • 现在,我们的结局是:

    getData(dataPlan: Data): Observable<MyType> {
      const httpOptions = {
        headers: new HttpHeaders({
          'Content-Type':  'application/json'
        })
      };
      return this.client.post<MyType>( `${environment.baseUrl}/ctrl/getDataPlan`, dataPlan, httpOptions );
    }
    
    getData(dataPlan:Data):可观察{
    常量httpOptions={
    标题:新的HttpHeaders({
    “内容类型”:“应用程序/json”
    })
    };
    返回this.client.post(`${environment.baseUrl}/ctrl/getDataPlan`,dataPlan,httpOptions);
    }
    
    有关官方文档中http请求的更多信息:

  • 您不应该发送这样的数据,最好使用post请求

  • 但是,如果您这样做,您会注意到您正在传递类型,请分享您从API获得的一些示例响应。另外,您是否可以创建一个最小的可验证的完整示例,使其更易于帮助?
    getData(dataPlan).subscribe((result:Response<InfoType[])=>
    {
    // result from request
    }