Angular 8中的Http post响应问题
我正在尝试下载服务器响应内容作为csv。在做同样的事情时,我有两个错误 方法如下: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:
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客户端)的方式是错误的 如果要向服务器传递更多数据,请使用POST或GET来完成此项工作 帖子: 如果您有疑问,请导入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'
}
);