Angular2 RequestOptionsArgs не принят в API REST ASP.NET Core 2.1 - PullRequest
0 голосов
/ 05 марта 2019

Я борюсь с приложениями 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 ошибка возвращается. Несанкционированный ответ

...