如何阻止文件从 JavaScript Blob 多次下载?

我正在调用后端微服务的 API 端点,该微服务下载 HTML 文件以响应 API 数据。我正在使用和 Axios 库来调用后端微服务,并且我得到了很好的响应。

在我的代码的 .then 块中,我使用 Blob 处理响应数据并将其保存为 HTML 文件。此代码基本上从 API 调用中获取响应,并将数据准备为具有自定义文件名的可下载链接。

当块的link.click()部分被执行时,下载会自动开始。

但是,我遇到的问题是我的网络浏览器需要两次下载相同的 HTML 文件。

我试图弄清楚如何只下载一次文件而不是多次。

这是我的代码:

  const callAPI = () => {
    Axios.post(api_endpoint, bodyArgs)
      .then((response) => {

        const url = window.URL.createObjectURL(new Blob([response.data]));
        const link = document.createElement("a");
        link.href = url;
        link.setAttribute("download", `${company}_${startDate}_${endDate}.html`);

        document.body.appendChild(link);
        link.click();
      })
      .catch(function (error) {

图片[1]-如何阻止文件从 JavaScript Blob 多次下载?-唐朝资源网

console.log(error); alert( "Sorry, there was an error processing your request. Please check the dates of your report and try again!" ); }); };

我的代码的 .then 块中是否存在问题,或者这是特定于 Web 浏览器的问题?任何帮助是极大的赞赏。谢谢。

© 版权声明
THE END
喜欢就支持一下吧
点赞153 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片