在打开之前检查window.open()的内容吗?

时间:2018-07-05 13:53:46

标签: javascript node.js parsing

我有一个API,该API返回Excel文件以供下载或将错误消息作为字符串返回。我正在尝试下载Excel文件或打印错误消息,而不重定向到另一页。

我正在尝试:

let new_window = window.open("https://API/receivedoc?timestamp="+timestamp,"_self")

如何检查请求是否返回了Excel文件,然后下载了该文件(当前有效)或字符串?如果是字符串,我想将其传递给局部变量,然后将其打印在output div中的网页上,如下所示:

filerootdiv.querySelector('.output').innerHTML = /**parse returned text here**/;

我不知道该怎么做,因为window.open()会自动重定向到新页面,并且如果API返回字符串,它只会显示带有该字符串的白页。

编辑

与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;
}

我正在尝试实现相同的错误功能,只不过该API返回了一个Excel文件而不是JSON,该文件需要为用户下载且不显示在网站上。

还是有一种方法可以发出xhr请求,使错误处理与上述JSON相同,然后然后下载文件?那可能吗?怎么样?

1 个答案:

答案 0 :(得分:-1)

在下载之前,您可以使用jquery.get功能进行检查。

$.get( "https://API/receivedoc?timestamp="+timestamp, function( data ) {
  if (data != ""){
     // Download file
  }
});