問題:
在 Struts2 應用程式中,jQuery Ajax呼叫檢索二進位串流資料代表要下載的文件,但使用者無法儲存該檔案
解決方案:
現代瀏覽器方法(2019及更高版本)
對於現代瀏覽器,簡化的方法可以被採用:
使用fetch() API 用於取得檔案:
fetch('https://jsonplaceholder.typicode.com/todos/1') .then(resp => resp.blob())
為檔案建立對象URL:
.then(blob => { const url = window.URL.createObjectURL(blob);
建立隱藏物件元素並設定其屬性:
const a = document.createElement('a'); a.style.display = 'none'; a.href = url; a.download = 'todo-1.json';
將元素附加到文件並點選它:
document.body.appendChild(a); a.click();
刪除物件URL :
window.URL.revokeObjectURL(url);
通知用戶成功下載的信息:
alert('your file has downloaded!');
其他注意事項:
以上是如何使用Ajax在Struts2應用程式中非同步下載檔案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!