AJAX リクエストを使用して JavaScript/jQuery でダウンロード可能なファイルを処理する方法

DDD
リリース: 2024-10-19 15:19:02
オリジナル
524 人が閲覧しました

How to Handle Downloadable Files in JavaScript/jQuery Using AJAX Requests?

JavaScript/jQuery で JSON データを使用して POST 経由でファイルをダウンロードする

シナリオ:

単一ページの Web アプリがあるとします。 AJAX 呼び出しを介して RESTful Web サービスと通信します。

  • JSON データを含む POST リクエストを REST URL に送信します。
  • リクエストで JSON レスポンスが指定されている場合は JSON を返します。
  • ダウンロード可能なファイルを返します。リクエストがバイナリ応答 (PDF、XLS など) を指定している場合は、バイナリ ファイル。

問題:

クライアント JavaScript コードでダウンロード可能なファイルを処理する方法AJAX 呼び出しを使用する場合?

解決策:

提供されたコードは JSON 応答を正常に処理しますが、dataType の制限のため、AJAX 要求を使用してファイルを直接ダウンロードすることはできません。オプション。ただし、別のアプローチを採用することもできます。

方法 1: サーバー上でファイルを生成および保存する

  • AJAX リクエストを作成してバイナリ ファイルを生成し、ファイルへの URL を含む JSON 応答。
  • AJAX 成功ハンドラーで、window.location.href を使用してブラウザを URL にリダイレクトし、ファイルをダウンロードします。

長所:

  • サーバーでの一元的なファイル管理

短所:

  • 複数の AJAX が必要
  • サーバー上の追加のファイル管理オーバーヘッド。

方法 2: Iframe の作成

  • POST リクエストを実行するJSON データを含む /create_binary_file.php にコピーします。
  • iframe を作成し、その src 属性を POST リクエストからの応答に設定します。これには、ダウンロード可能なファイルの URL が含まれることが期待されます。
  • document.body.appendChild() または jQuery の $.body.append() を使用して iframe をページに追加します。

利点:

  • ファイルをダウンロードする際のユーザー操作を促進します。
  • サーバー上で追加のファイル管理は不要です。

短所:

  • 変更が必要ですDOM。

考慮事項:

  • 方法 1 では、より多くのサーバー オーバーヘッドが必要になりますが、より多くの制御とファイル管理が可能になります。
  • 方法 2 は簡単ですが、DOM の変更が必要なため、複雑なページには適していない可能性があります。
  • バイナリ ファイルのダウンロードを容易にするために、サーバーには適切な MIME タイプ設定が必要です。

以上がAJAX リクエストを使用して JavaScript/jQuery でダウンロード可能なファイルを処理する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!