簡體   English   中英

Angular 8 中的 Http post 響應問題

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM