Я борюсь с приложениями Angular2 и ASP.NET Core 2.1.
Создание файла Excel с EPPlus.Core приводит к повреждению файла после его загрузки на стороне клиента Angular.
Проблема теперь в том, что еслиЯ добавляю http.post
RequestOptionsArgs
часть, тогда API не вызывается.Как вызвать API, если RequestOptionsArgs
включены?Я видел, что RequestOptionsArgs
устарела в более поздних версиях Angular.
getSearchedReportsToExcel(filterObject: FilterObject){
this._http.post(AppSettings.GetSearchedReportsToExcelUrl, filterObject,
{
method: RequestMethod.Post,
responseType: ResponseContentType.Blob,
headers: new Headers({'Content-Type' : 'application/x-www-form-urlencoded'})
}).subscribe(
response => { // download file
var blob = new Blob([response.blob()],
{type:'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'});
var filename = 'file.xlsx';
saveAs(blob, filename);
},
error => {
console.error(`Error: ${error.message}`);
}
);
}
[HttpPost]
[Produces("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")]
public IActionResult GetSearchedReportsToExcel([FromBody]FilterObjectDTO filterObject)
{
...
}
Я создал HttpGet
API-функцию и украсил ее атрибутом [AllowAnonymous]
.Я думаю, что должно быть лучшее решение.Без атрибута 401 ошибка возвращается. Несанкционированный ответ