1. ホーム
  2. javascript

[解決済み] ajaxポストからのファイルダウンロードを処理する

2022-03-21 08:59:22

質問

私は、特定のURLにajaxのPOSTリクエストを送信するjavascriptアプリを持っています。レスポンスはJSON文字列であったり、ファイル(添付ファイル)であったりします。ajaxコールでContent-TypeとContent-Dispositionを簡単に検出できますが、応答にファイルが含まれていることを検出したら、それをダウンロードするためにクライアントを提供するにはどうすればよいでしょうか?ここで似たようなスレッドをいくつか読みましたが、どれも私が探している答えを提供してくれません。

お願いだから、このためにajaxを使うべきではないとか、ブラウザをリダイレクトした方がいいというような回答を投稿しないでください。プレーンなHTMLフォームを使用することも選択肢ではありません。私が必要とするのは、クライアントにダウンロードのダイアログを表示することです。これは可能ですか、そしてどのように可能ですか?

どのように解決するのですか?

フォームを作成し、POSTメソッドを使用して、フォームを送信します - iframeは必要ありません。 サーバー・ページがリクエストに応答したら、ファイルのMIMEタイプをレスポンス・ヘッダに書けば、ダウンロード・ダイアログが表示されます - 私はこれを何度もやりました。

content-type に application/download を指定したい場合は、使用する言語のダウンロード方法を検索してください。