處理 RESTful Web 服務時,處理回應可能會根據其格式而有所不同。本文探討了一個特定場景,其目標是提交帶有 JSON 資料的 POST 請求並檢索可下載的檔案作為回應,提示瀏覽器保存它。
一種方法是建立一個 iframe 並將其來源附加到網頁的正文中。這將觸發瀏覽器的下載提示。但是,需要注意的是,此方法可能會幹擾現有頁面內容,因此建議使用appendChild而不是innerHTML。
<code class="javascript">$.post('/create_binary_file.php', postData, function(retData) { var iframe = document.createElement("iframe"); iframe.setAttribute("src", retData.url); iframe.setAttribute("style", "display: none"); document.body.appendChild(iframe); });</code>
A jQuery-基於的替代方法是使用append()方法將iframe加入正文。
<code class="javascript">$.post('/create_binary_file.php', postData, function(retData) { $("body").append("<iframe src='" + retData.url+ "' style='display: none;' ></iframe>"); });</code>
兩種解決方案都依賴POST回應包含「url」屬性的假設指向可下載的檔案。當 iframe 新增至具有該 URL 的頁面時,瀏覽器會攔截該請求並提示使用者下載檔案。此方法需要在 Web 伺服器上進行正確的 MIME 類型配置。
雖然這些解決方案提供了透過 POST 請求下載檔案的可行方法,但考慮潛在的限制和缺點至關重要,尤其是處理較大的檔案時。此外,可能需要在 AJAX 成功處理程序中實作附加功能,以啟用錯誤處理並向使用者提供回饋。
以上是如何在 JavaScript/jQuery 中使用 JSON 透過 POST 下載檔案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!