首頁  >  文章  >  web前端  >  如何使用 AJAX 請求處理 JavaScript/jQuery 中的可下載檔案?

如何使用 AJAX 請求處理 JavaScript/jQuery 中的可下載檔案?

DDD
DDD原創
2024-10-19 15:19:02675瀏覽

How to Handle Downloadable Files in JavaScript/jQuery Using AJAX Requests?

使用JavaScript/jQuery 中的JSON 資料透過POST 下載檔案

場景:

場景:
  • 您有一個單Web應用程式透過AJAX 呼叫與RESTful Web 服務進行通訊。您需要:
  • 將包含 JSON 資料的 POST 請求提交到 REST URL。
如果要求指定 JSON 回應,則傳回 JSON。

傳回可下載的如果請求指定二進位回應(例如 PDF、XLS),則為二進位檔案。

問題:

如何在客戶端 JavaScript 程式碼中處理可下載檔案使用 AJAX 呼叫時?

解決方案:

雖然提供的程式碼成功處理 JSON 回應,但由於 dataType 的限制,無法直接使用 AJAX 請求下載檔案選項。但是,可以採取替代方法:

  • 方法1:在伺服器上產生並儲存檔案
發出AJAX 請求來產生二進位檔案並傳回帶有檔案URL 的JSON 回應。

在 AJAX 成功處理程序中,使用 window.location.href 將瀏覽器重新導向至 URL 下載檔案。

  • 優點:

伺服器上的集中檔案管理。

  • 缺點:
需要多個 AJAX

伺服器上的額外檔案管理開銷。

  • 方法 2:建立 Iframe
  • 執行 POST 要求使用 JSON 資料到 /create_binary_file.php。
建立一個 iframe 並將其 src 屬性設為 POST 請求的回應,該回應應包含可下載檔案的 URL。

使用 document.body.appendChild() 或 jQuery 的 $.body.append() 將 iframe 新增至頁面。

  • 優點:
促進下載檔案的使用者互動。

伺服器上沒有額外的檔案管理。

  • 缺點:

需要修改

  • 注意事項:
  • 方法1 需要更多伺服器開銷,但允許更多控制和檔案管理。
方法2可以更簡單,但涉及修改DOM,可能不適合複雜的頁面。 伺服器必須有適當的MIME類型配置,以方便下載二進位。

以上是如何使用 AJAX 請求處理 JavaScript/jQuery 中的可下載檔案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn