У меня есть API, который возвращает файл Excel для загрузки или сообщение об ошибке в виде строки. Я пытаюсь загрузить файл Excel или распечатать сообщение об ошибке, не перенаправляя на другую страницу.
Я пытаюсь сделать:
let new_window = window.open("https://API/receivedoc?timestamp="+timestamp,"_self")
Как проверить, вернул ли запрос файл Excel, а затем загрузить его (это работает в настоящее время) или строку? Если это строка, я бы хотел передать ее в локальную переменную и распечатать на веб-странице в формате output
, например:
filerootdiv.querySelector('.output').innerHTML = /**parse returned text here**/;
Я понятия не имею, как это сделать, поскольку window.open()
автоматически перенаправляет на новую страницу, и если API возвращает строку, он просто показывает белую страницу со строкой.
EDIT
Что работает с JSON:
xhr1.open("GET", "https://API/predict?timestamp="+timestamp)
try {
self.data = JSON.parse(xhr1.response);
filerootdiv.querySelector('.output').innerHTML = 'Complete!';
} catch(e){
console.log("not JSON");
filerootdiv.querySelector('.output').innerHTML = xhr1.response;
}
Я пытаюсь достичь той же функциональности, связанной с ошибками, за исключением того, что вместо JSON есть файл Excel, возвращаемый API, который необходимо загрузить для пользователя и НЕ отображать на сайте.
Или есть способ, которым я могу сделать запрос xhr
, сделать обработку ошибок примерно такой же, как с JSON выше, и затем загрузить файл? Это возможно? Как?