P粉0717437322023-08-17 12:50:47
ファイル拡張子は実際にはこれとはあまり関係ありません... Content-Type
ヘッダーは関係します。
あなたの説明に基づくと、PDF ファイルを取得するときに、サーバーは応答で正しいタイプを使用せず、代わりに application/octet-stream
または他のタイプとして送信していると推測します。 (これは一般的なタイプであり、ブラウザはデフォルトでダウンロードします。)
この問題を解決するにはいくつかの方法があります。 1 つの方法は、ServiceWorker を使用して、必要に応じて Content-Type
ヘッダーをオーバーライドすることです。ただし、これが常に機能するとは限りません。ページが強制的にリロードされたとき、またはプライバシー モードが有効になっているとき、ブラウザは Service Worker を無効にすることがよくあります。
あなたが提案したものに近い別のアプローチは、JavaScript でメモリ内の PDF を取得することです。これは、Fetch API を使用して実行し、Blob URL を作成してブラウザーにダウンロードさせることができます。まだテストされていませんが、おおよそ次のとおりです:
リーリーこれは、特に大きなドキュメントの場合は機能しない可能性があることに注意してください。小さな書類でも問題ありません。
また、すべてのブラウザが PDF を表示できるわけではなく、すべてのシステムがブラウザ自体で PDF を表示できるように構成されているわけではないことにも注意してください。