У меня есть WebAPI, у которого есть метод, который создает файл Excel и возвращает его, используя File()
.
В моем приложении Angular я подписываюсь на ответ и скачиваю файл, используя blob. Но я получаю сообщение об ошибке в консоли браузера, в котором говорится, что он не может проанализировать ответ на JSON.
Почему он хочет проанализировать ответ на JSON? И как решить эту проблему?
Контроллер API:
[HttpPost]
public IActionResult QRGenerator(QRCode qrCode)
{
string wwwrootPath = _hostingEnvironment.WebRootPath;
var QrCodes = new List<QRCode>();
QrCodes.Add(qrCode);
ExcelGenerator generator = new ExcelGenerator();
var fileName = generator.GeneratePrintableSheets(QrCodes, wwwrootPath);
var path = Path.Combine(wwwrootPath, fileName);
return DownloadFile(fileName, wwwrootPath);
}
public IActionResult DownloadFile(string fileName, string wwwrootPath)
{
var path = Path.Combine(wwwrootPath, fileName);
var content = System.IO.File.ReadAllBytes(path);
return File(content, "application/vnd.ms-excel", fileName);
}
Угловой компонент:
createQR(qrCode: QRCode) {
let formData: FormData = new FormData();
this.singleQr.CreateSingleQR(formData).subscribe(data => {
this.downloadFile(data);
console.log(data);
});
}
downloadFile(data: any){
var blob = new Blob([data], { type: 'application/vnd.ms-excel' });
var url= window.URL.createObjectURL(blob);
window.open(url);
}
А для завершения ради Службы Англичан
CreateSingleQR(formdata: FormData) {
return this.http.post(this.qrUrl, formdata);
}
![Browser Error](https://i.stack.imgur.com/przGX.png)