我有一个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相同,然后然后下载文件?那可能吗?怎么样?
答案 0 :(得分:-1)
在下载之前,您可以使用jquery.get功能进行检查。
$.get( "https://API/receivedoc?timestamp="+timestamp, function( data ) {
if (data != ""){
// Download file
}
});