ホームページ >ウェブフロントエンド >jsチュートリアル >Ajax を使用して Struts2 アプリケーションでファイルを非同期的にダウンロードするにはどうすればよいですか?
問題:
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 中国語 Web サイトの他の関連記事を参照してください。