[解決済み] 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 を指定したい場合は、使用する言語のダウンロード方法を検索してください。
関連
-
HTML+CSS+JavaScriptで簡単な三目並べゲームを作成する。
-
[解決済み】React-Redux: アクションはプレーンオブジェクトでなければならない。非同期アクションにはカスタムミドルウェアを使用する
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] あるJavaScriptファイルを他のJavaScriptファイルにインクルードするにはどうすればよいですか?
-
[解決済み] jQueryを使ったAjaxリクエストの中断
-
[解決済み] jQuery Ajax呼び出し後のリダイレクトリクエストを管理する方法
-
[解決済み] どうすればjQueryに非同期ではなく、同期のAjaxリクエストを実行させることができますか?
-
[解決済み】PHPによるjQuery Ajax POSTの例
-
[解決済み】オブジェクトからプロパティを削除する(JavaScript)
-
[解決済み] ブラウザがファイルのダウンロードを受信したことを検出する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
vueネットワークリクエストソリューション ネイティブネットワークリクエストとjsネットワークリクエストライブラリ
-
vueのグローバルがscss(mixin)を導入。
-
Javascript Bootstrapのグリッドシステム、ナビゲーションバー、ローテーションの説明
-
vue ディレクティブ v-html と v-text
-
vueにおけるfilterの適用シーンについて解説します。
-
Vueの「データを聴く」原則を解説
-
[解決済み】Node.js getaddrinfo ENOTFOUND
-
[解決済み】「X-Frame-Options」を「SAMEORIGIN」に設定したため、フレームでの表示を拒否された。
-
[解決済み】リクエストに失敗していないのに、「TypeError: failed to fetch」が表示される。
-
[解決済み】ReactJSでエラー発生 Uncaught TypeError: Super expression は null か関数でなければならず、undefined ではありません。