0

我有一个使用简单的 window.location.href 命令启动的文件下载。由于我停留在同一个页面上,我想调用一个不同的函数来刷新页面的一部分,但是下载后这个其他函数没有被执行。有没有办法做到这一点?我想我正在寻找类似 ajax 的“成功”选项。

谢谢!

4

2 回答 2

1

尝试这个:

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)
于 2021-12-22T19:32:04.673 回答
0

一个简单的 AJAX 后调用就足够了。尤其是对于文件下载等异步和时间可变的东西readyState,an 的属性XMLHttpRequest非常有用。

于 2013-09-30T17:33:08.633 回答