Javascript 打开前检查window.open()的内容?
我有一个API,它要么返回Excel文件供下载,要么以字符串形式返回错误消息。我正在尝试下载Excel文件或打印错误消息,而不重定向到其他页面 我正在努力做到: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的网页上,如:
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。