微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 ajax 和 jQuery 中的函数调用下载 PDF 文件

如何解决使用 ajax 和 jQuery 中的函数调用下载 PDF 文件

我正在尝试使用此功能下载文件,但在首次 ajax 成功后无法执行该功能。我阅读了其他资源,但没有帮助,我试图从 2 天开始实现这一目标,并定期搜索没有发生任何事情。

请帮助我在第一次成功响应后创建此函数,它将调用函数作为 DownloadFile();

我在第一个成功响应中返回这些数组 -

当前没有任何错误,只显示一个成功响应显示并且没有运行 downlaodfile() 函数

filename: "PO_21-22_0166.pdf"
path: "./folder/myfilename.pdf"
responseCode: "200"
status: "success" 

请帮助我,我如何使它正确,以便我可以在我自己创建的代码的帮助下下载文件。 我在哪里做错了以及修复后会如何。

$.ajax({
  cache: false,type: "POST",url: "example.com",cache: false,success: function(response) {
    if (response.responseCode == '200') {
      var fileName = response.filename;
      var myurl = response.path;

      function DownloadFile(fileName) {
        //var myurl = response.path;
        $.ajax({
          url: myurl,xhr: function() {
            var xhr = new XMLHttpRequest();
            xhr.onreadystatechange = function() {
              if (xhr.readyState == 2) {
                if (xhr.status == 200) {
                  xhr.responseType = "blob";
                } else {
                  xhr.responseType = "text";
                }
              }
            };
            return xhr;
          },success: function(data) {
            //Convert the Byte Data to BLOB object.
            var blob = new Blob([data],{
              type: "application/octetstream"
            });

            //Check the browser type and download the File.
            var isIE = false || !!document.documentMode;
            if (isIE) {
              window.navigator.msSaveBlob(blob,fileName);
            } else {
              var url = window.URL || window.webkitURL;
              link = url.createObjectURL(blob);
              var a = $("<a />");
              a.attr("download",fileName);
              a.attr("href",link);
              $("body").append(a);
              a[0].click();
              $("body").remove(a);
            }
          },});
      }
    } else {
      alert(response.message);
      return false;
    }
  },});

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。