Поэтому я пытаюсь позвонить на сервер, чтобы получить файл PDF, который работает, когда файл существует. Но когда нет файла, я получаю ответ 404 с сервера. Мне нужно получить доступ к этому состоянию в результате объекта. Проблема в том, что когда BLOB пытается загрузить файл и не находит файл, он не предоставляет мне результат с сервера, а вместо этого говорит следующее:
TypeError: Не удалось выполнить команду createObjectURL на «URL»: не найдено ни одной функции, которая бы соответствовала предоставленной подписи.
Если я немного настрою ее, появится сообщение «Ошибка при загрузке файла». Но мне действительно нужен статус из ответа сервера из-за отображения правильной информации, если файл не существует или если это ошибка сервера. Из-за конфиденциальных данных я не могу скопировать вставить результат с сервера здесь. Но он показывает результат: {statusCode: 404 "} в объекте.
Это мой код:
export function* getInvoicePDFWorkerSaga(arg) {
const {
organizationNumber, agreementId, invoiceNumber,
} = arg;
try {
const blob = yield call(invoices.getInvoicePDF, organizationNumber, agreementId, invoiceNumber);
const blobUrl = URL.createObjectURL(blob);
downloadFile(blobUrl, `invoice_${invoiceNumber}`, 'pdf');
} catch (e) {
yield put(actions.getInvoicePDFFailedAction(invoiceNumber, formatError(e)));
const retry = yield call(RetryPrompt);
if (retry) {
yield call(getInvoicePDFWorkerSaga, arg);
}
}
}
getInvoicePDF: (organizationNumber, agreementId, invoiceNumber) => (
getBlob({ url: ENDPOINTS.getInvoicePDF(organizationNumber, agreementId, invoiceNumber) })
),