RESTful Web サービスを扱う場合、応答の処理はその形式に応じて異なる場合があります。この記事では、JSON データを含む POST リクエストを送信し、応答としてダウンロード可能なファイルを取得し、ブラウザーにファイルの保存を要求することを目的とする特定のシナリオについて説明します。
1 つのアプローチは、iframe を作成し、そのソースを Web ページの本文に追加することです。これにより、ブラウザのダウンロード プロンプトが表示されます。ただし、このメソッドは既存のページ コンテンツに干渉する可能性があることに注意することが重要です。そのため、innerHTML の代わりに appendChild を使用することをお勧めします。
<code class="javascript">$.post('/create_binary_file.php', postData, function(retData) { var iframe = document.createElement("iframe"); iframe.setAttribute("src", retData.url); iframe.setAttribute("style", "display: none"); document.body.appendChild(iframe); });</code>
A jQuery-ベースの代替案は、append() メソッドを使用して iframe を本文に追加することです。
<code class="javascript">$.post('/create_binary_file.php', postData, function(retData) { $("body").append("<iframe src='" + retData.url+ "' style='display: none;' ></iframe>"); });</code>
どちらのソリューションも、POST 応答に 'url' プロパティが含まれているという前提に基づいています。ダウンロード可能なファイルを指します。その URL を持つページに iframe が追加されると、ブラウザーはリクエストをインターセプトし、ユーザーにファイルをダウンロードするよう求めます。このアプローチには、Web サーバー上で適切な MIME タイプ設定が必要です。
これらのソリューションは、POST リクエスト経由でファイルをダウンロードするための実行可能なアプローチを提供しますが、潜在的な制限と欠点を考慮することが重要です。より大きなファイルを扱う場合。さらに、エラー処理を有効にしてユーザーにフィードバックを提供するには、AJAX 成功ハンドラーに追加機能を実装する必要がある場合があります。
以上がJavaScript/jQuery で JSON を使用して POST 経由でファイルをダウンロードするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。