簡體   English   中英

無法在Angular FileUpload控件中設置Content-Type

[英]Cannot set Content-Type in Angular FileUpload control

我的Angular項目中有一個PrimeNG FileUpload控件,我手動調用了上載方法,如PrimeNG手動調用FileUpload所示 但是,盡管我已經用文件數據正確填充了files參數,但是數據從service.ts傳遞到Controller(ASP.NET MVC)后丟失了其值並返回null。 我認為問題是由於無法在任何事件中都設置Content-Type引起的,如下所示:

onBeforeSendFile(event: any) {
    event.xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
    event.xhr.setRequestHeader("Content-Type", "multipart/form-data");
}

or

onBeforeUploadFile(event: any) {
    event.xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
    event.xhr.setRequestHeader("Content-Type", "multipart/form-data");
}

等等...

我在setRequestHeader行中遇到“無法讀取未定義的屬性'setRequestHeader'”錯誤。 您能告訴我如何設置必要的RequestHeaders而不丟失文件數據嗎?

更新:這是我下面的發布方法:

 post(url: string, body: any, comp?: BaseComponent): Observable<any> {
    this.requestInterceptor(comp);
    return this.http.post<any>(url, { body: JSON.stringify(body) },
        {
            headers: new HttpHeaders({  // set the header values here
                'Content-Type': 'multipart/form-data',
                'X-Requested-With': 'XMLHttpRequest',
                'Test-Header': 'This is just a test header!'
            })
        }
    ).pipe(
        catchError((error, obs) => this.handleError(error, comp)),
        tap((res: Response) => {
            this.onSubscribeSuccess(res, comp);
        }, (error: any) => {
            this.onSubscribeError(error, comp);
        }),
        finalize(() => {
            this.onFinally(comp);
        }));
}

您可以改為使用HttpClient

this._HttpClient.post('url whatever', { 'body': 'here' }, {
    headers: new HttpHeaders({  // set the header values here
        'Content-Type': 'multipart/form-data'
    })
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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