Проверить содержимое window.open () перед открытием? - PullRequest
0 голосов
/ 05 июля 2018

У меня есть 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 выше, и затем загрузить файл? Это возможно? Как?

1 Ответ

0 голосов
/ 05 июля 2018

Вы можете проверить с помощью функции jquery.get перед загрузкой.

$.get( "https://API/receivedoc?timestamp="+timestamp, function( data ) {
  if (data != ""){
     // Download file
  }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...