我有一个使用简单的 window.location.href 命令启动的文件下载。由于我停留在同一个页面上,我想调用一个不同的函数来刷新页面的一部分,但是下载后这个其他函数没有被执行。有没有办法做到这一点?我想我正在寻找类似 ajax 的“成功”选项。
谢谢!
我有一个使用简单的 window.location.href 命令启动的文件下载。由于我停留在同一个页面上,我想调用一个不同的函数来刷新页面的一部分,但是下载后这个其他函数没有被执行。有没有办法做到这一点?我想我正在寻找类似 ajax 的“成功”选项。
谢谢!
尝试这个:
var req = new XMLHttpRequest();
req.open("POST", "your endpoint", true);
req.responseType = "blob";
req.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
var fileName = "fileName.pdf";
req.onload = function (event) {
var blob = req.response;
if (req.status === 200) {
var link = document.createElement('a');
link.href = window.URL.createObjectURL(blob);
link.download = fileName;
link.click();
//call your method her to do anything
}
};
req.send();
//if you have any parameter, you can this
//reg.send(param)
一个简单的 AJAX 后调用就足够了。尤其是对于文件下载等异步和时间可变的东西readyState
,an 的属性XMLHttpRequest
非常有用。