Ajax 経由の PDF ダウンロードの処理: 解決策
Ajax 呼び出しがアクション クラスによって生成された PDF ファイルをダウンロードしようとすると、ストリームをブラウザに配信できない場合は、エラーが発生します。この問題を解決するには、別のアプローチが必要です。
提供されたアクション クラスでは、PDF ファイルが生成され、そのストリームが正しいヘッダーでダウンロードできるように設定されます。ただし、転送を容易にするために、Ajax 呼び出しは別の方法で処理する必要があります。
正常に実装されたソリューションは次のとおりです。
<code class="javascript">$.ajax({ url: '<URL_TO_FILE>', success: function(data) { var blob=new Blob([data]); var link=document.createElement('a'); link.href=window.URL.createObjectURL(blob); link.download="<FILENAME_TO_SAVE_WITH_EXTENSION>"; link.click(); } });</code>
このコードでは、Ajax 呼び出しは PDF ファイルを取得します。ストリームをデータ変数として使用します。次に、データから Blob オブジェクトを作成します。新しいリンク要素が作成され、その href が BLOB の URL に設定されます。ダウンロード属性は、適切な拡張子が付いた目的のファイル名に設定されます。最後に、リンクをクリックしてダウンロード プロセスを開始します。
このアプローチは、アクション クラスによって生成された PDF ファイルをダウンロードのためにブラウザに配信するのに効果的であることが証明されており、サーバーとクライアント間のシームレスな統合が可能になります。
以上がAjax 経由でアクション クラスによって生成された PDF をダウンロードするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。