27

わかりました、ドキュメントデータがどこかに保存されているとしましょう。この pdfを任意に取りましょう。

問題#1。私がやりたいことは、この URL への AJAX 呼び出しを行うことです (いくつかの認証ヘッダーを渡す必要があり、それがクロスドメインであるため)。次に、返されたデータを取得し、そのデータのBLOB URLを作成し、iFrame を DOM に追加して、 BLOB URL に転送しますsrc

現在、私のコードは次のようになっています。

$.ajax({
  url:'http://www.grida.no/climate/ipcc_tar/wg1/pdf/tar-01.pdf'
}).done(function(data){
   var file = new Blob([data], {type:'application/pdf'}),
       url = URL.createObjectURL(file),
       _iFrame = document.createElement('iframe');
      _iFrame.setAttribute('src', url);
      _iFrame.setAttribute('style', 'visibility:hidden;');
      $('#someDiv').append(_iFrame);
});

残念ながら、iFrame で「PDF のレンダリングに失敗しました」というメッセージが表示されます。

問題#2。これにより、ファイルのダウンロードプロンプトが表示されるようにしたいと思います。PDFが自然にiFrameに表示されるだけであるため、これを保証する方法がわかりません。

4

3 に答える 3