【发布时间】:2019-02-06 11:59:36
【问题描述】:
我的 Angular 项目中有一个 PrimeNG FileUpload 控件,我手动调用上传方法,如 PrimeNG manually invoke 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方法:
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);
}));
}
【问题讨论】:
标签: asp.net-mvc angular primeng