Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 打开前检查window.open()的内容?_Javascript_Node.js_Parsing - Fatal编程技术网

Javascript 打开前检查window.open()的内容?

Javascript 打开前检查window.open()的内容?,javascript,node.js,parsing,Javascript,Node.js,Parsing,我有一个API,它要么返回Excel文件供下载,要么以字符串形式返回错误消息。我正在尝试下载Excel文件或打印错误消息,而不重定向到其他页面 我正在努力做到: let new_window = window.open("https://API/receivedoc?timestamp="+timestamp,"_self") 我如何检查请求是否返回Excel文件,然后下载它(这在当前有效)或字符串?如果它是一个字符串,我想将其传递给一个局部变量,并将其打印在outputdiv的网页上,如:

我有一个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类似,然后下载一个文件?可能吗?如何下载?

在下载函数之前,您可以使用该函数进行检查

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

如果是另一个来源,忘记它如果它在同一个域上,这可能会有所帮助:我认为这是不对的,因为数据永远不会是空的,它要么是Excel工作表,要么是非空字符串。另外,如何下载包含在变量中的Excel文件?我想不出来。我还更新了这个问题。我使用的是node,不是jquery。