ajax請求下載excel檔案

carol2014發表於2024-03-07

改一個頁面:js新開啟一個頁面,頁面的地址為一個get請求介面,由於傳遞的字串變多,要改為post請求。

沒辦法使用js開啟新視窗這種了,考慮ajax請求。寫個demo記錄下

<script>
  function downloadFile(url, data) {
    $.ajax({
      url: url,
      type: "POST",
      cache: false,
      data: data,
      xhrFields: {
        responseType: "blob", // 設定響應型別為二進位制流
      },
      beforeSend: function () {},
      success: function (response, status, xhr) {
        const blob = new Blob([response], {
          type: xhr.getResponseHeader("Content-Type"),
        });
        const link = document.createElement("a");
        link.href = window.URL.createObjectURL(blob);
        link.download = "test.xlsx";
        link.click();
      },
      complete: function (data) {},
      error: function (err) {},
    });
  }
</script>

相關文章