У меня есть две конечные точки
POST `reports/pdf`
{
payload
}
И:
POST `reports/csv`
{
payload
}
, которые возвращают временные файлы как file:///C:/Users/UserFolder/AppData/Local/Temp/csv6677594787854925068.csv
и file:///C:/Users/UserFolder/AppData/Local/Temp/pdf6677594753424925068.pdf
Я создал службы с методамикак этот, чтобы получить этот файл:
exportReport(summaryCustomerReport: SummaryCustomerReport): Observable<Object> {
const exportUrl = `${this.reportsUrl}/pdf`;
return this.http.post(exportUrl, summaryCustomerReport);
}
private get reportsUrl() {
return `${environment.backendUrl}/reports`;
}
И затем я попытался использовать этот сервис:
downloadPdf() {
this.hoursWorkedForCustomersService.exportReport(this.summaryCustomerReport, ExportFileFormat[ExportFileFormat.PDF]).subscribe(
result => {
saveAs(result, 'new.pdf');
},
error => { console.error(error) },
() => {}
);}
Но у меня есть ошибка под названием
Access to XMLHttpRequest at 'file:///C:/Users/UserFolder/AppData/Local/Temp/csv6677594787854925068.csv' from origin 'http://localhost:4200' has been blocked by CORS policy: Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https.
А также:
ERROR DOMException: Failed to execute 'send' on 'XMLHttpRequest': Failed to load 'file:///C:/Users/UserFolder/AppData/Local/Temp/csv6677594787854925068.csv'.
Я пытался использовать решение из похожих вопросов, таких как запуск Chrome с CMD, например chrome.exe --allow-file-access-from-files --disable-web-security
, это не помогло.
Есть идеи, что я делаю не так?