#javascript #reactjs #react-native
#javascript #reactjs #react-native
Вопрос:
У меня есть вызов API, который вернет json в качестве ответа.Объект json содержит PDF-байты и xml в виде строки.Как я могу извлечь PDF-байты из ответа в виде большого двоичного объекта и сгенерировать документ.
Ниже приведен мой фрагмент кода, здесь ранее я получал только один ответ от моего API, то есть только байты pdf, и он работал, как ожидалось, но теперь с json он не работает.
var oReq = new XMLHttpRequest();
var URLToPDF =
"http://localhost:8080/downloadPDF";
oReq.open("GET", URLToPDF, true);
oReq.responseType = "blob";
var that = this;
oReq.onload = function() {
console.log("Response received",oReq.response);
const file = new Blob([oReq.response], { type: "application/pdf" });
fileURL = URL.createObjectURL(file);
window.open(fileURL, "_blank");
that.setState({ loaderFlagInvoicePdf: false });
that.setState({ invoicePDFDisplay: true });
};
oReq.send();
Может кто-нибудь, пожалуйста, подсказать, как я могу извлечь большой двоичный объект из ответа json?
Комментарии:
1. Вам нужно изменить тип на {type: ‘application/json’} или изменить oReq.responseType на «json». Затем получите байтовый текст из json
2. да, я внес эти изменения, но при экспорте pdf выдается ошибка «Не удается загрузить PDF». Можете ли вы просто помочь мне извлечь байты pdf в виде большого двоичного объекта из ответа JSON, чего в данном случае не происходит
3. закодирован ли текст blob в json base64? если да, вам необходимо декодировать его перед использованием с new Blob()
4. Нет, я декодировал его с помощью java.util.Base64.GetDecoder().decode(новая строка(pdfData.getBytes(), проблема, с которой я сталкиваюсь, заключается в невозможности извлечь PDF-байты из JSON и преобразовать их в PDF