Angular 8中的Http post响应问题

Angular 8中的Http post响应问题,angular,angular8,Angular,Angular8,我正在尝试下载服务器响应内容作为csv。在做同样的事情时,我有两个错误 方法如下: generateCsv(exportModel: any) { let headers={}; return this.http.post<any>(ReportConstant.exportApi, exportModel, { observe:"response",responseType: 'blob'}) } generateCsv(exportModel:

我正在尝试下载服务器响应内容作为csv。在做同样的事情时,我有两个错误

方法如下:

generateCsv(exportModel: any) {
    let headers={};
    return this.http.post<any>(ReportConstant.exportApi, exportModel,
        { observe:"response",responseType: 'blob'})
} 
generateCsv(exportModel:any){
让头={};
返回此.http.post(ReportConstant.exportApi、exportModel、,
{观察:“响应”,响应类型:'blob'})
} 
错误:

src/app/components/export/_services/export.service.ts(22,91)中出错:错误TS2322:Type“response”不可分配给Type "主体"

src/app/components/export/_services/export.service.ts(22110):错误TS2322:类型“blob”不可分配给类型“json”


我对前端技术非常陌生。请告诉我解决问题的方法

您使用POST API(Http客户端)的方式是错误的

如果要向服务器传递更多数据,请使用POSTGET来完成此项工作

帖子: 如果您有疑问,请导入statemenet

import {HttpClient, HttpHeaders, HttpParams, HttpParameterCodec} from "@angular/common/http";
将其添加到构造函数中

private httpClient: HttpClient
代码开始:

let body = new HttpParams({encoder: new CustomEncoder()});
body = body.append('args', 'stringArguments')); //Add needed arguments

//Set header and response types

let options= {
      headers: new HttpHeaders().set('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8'),
      responseType:'text' as 'json'
    };

// This will return a promise(observable) which can be called utilized as 
// observableReturn.subscribe(response => this.ProcessAsyncResponse(response), error => this.HandleSRProcessError(error, this.serviceRequestCallList));

return this.httpClient.post(ajaxUrl, body, options)

为什么要使用POST调用来获取数据?这应该是一个好机会。
exportModel
的类型是什么?能否尝试将
responseType:'blob'
更改为
responseType:'blob'为'json'
?让headers=data.headers;让contentDisposition=headers.get('content-disposition');让filename=contentDisposition.split(';')[1]。split('filename')[1]。split('='))[1]。trim();这就是我在尝试将responsetype:'blob'添加为'json'时出错的地方。@Arcteezy:您能提供angular 8 GET方法的语法吗。
     return  this.httpClient.post(url,
            body,
            {
                headers: new HttpHeaders({
                    'Content-Type': 'application/json'
                }),
                observe: 'response',
                responseType: 'blob'
            }
        );