[英]Http post response issue in Angular 8
我正在嘗試將服務器響應內容下載為 csv。 在做同樣的事情時,我遇到了 2 個錯誤。
方法如下:
generateCsv(exportModel: any) {
let headers={};
return this.http.post<any>(ReportConstant.exportApi, exportModel,
{ observe:"response",responseType: 'blob'})
}
錯誤:
src/app/components/export/_services/export.service.ts(22,91) 中的錯誤:錯誤 TS2322:類型“響應”不能分配給類型“主體”。
src/app/components/export/_services/export.service.ts(22,110): 錯誤 TS2322: 類型 '"blob"' 不可分配給類型 '"json"'。
我對前端技術很陌生。 請建議我解決問題的解決方案。
return this.httpClient.post(url,
body,
{
headers: new HttpHeaders({
'Content-Type': 'application/json'
}),
observe: 'response',
responseType: 'blob'
}
);
您使用 POST API(Http Client) 的方式是錯誤的
如果您將更多數據傳遞給服務器,請使用POST否則GET應該完成這項工作
POST:如果您有疑問,請導入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)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.