У меня в проекте Angular есть элемент управления PrimeNG FileUpload, и я вручную вызываю метод загрузки, как показано на PrimeNG вручную вызывает FileUpload . Однако, хотя я правильно заполнил параметр files данными файла, данные потеряли свое значение и возвращают значение null после передачи из service.ts в Controller (ASP.NET MVC). Я думаю, что проблема вызвана невозможностью установить 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);
}));
}