2016-08-26 23 views
2

私はforce.comを使用していますので、チャットPDFファイルをインラインでダウンロードする必要はありません。これは私のバイナリPDFデータを返す例えばREST APIレスポンスをインラインpdf(ダウンロードされていないファイル)として表示

/サービス/ファイル/ FILEID /コンテンツのため

を私は、PDFに直接アクセスリンクを持っていないと、ファイル自体を取得する唯一の方法は、REST呼び出しを経由していますウェブページに埋め込みたい さまざまなstackoverflowの回答に基づいて私はこれを行うにはいくつかの良いアイデアを持っており、その空白を除いてページにPDFが開きます - つまり、内容はありません。正しいページ数がありますが、テキストは表示されていません。

このリクエストが発生している間に私がフィドラーを実行し、そのレスポンスをファイルとして保存すると、pdfはすばらしく見えます。しかし、何らかの理由で、Ajaxリクエストに来てブラウザに配信されるレスポンスは良くありません。私はそれがブラウザにpdfデータを適切に配信するために何らかのエンコーディングを行う必要があると考えています。

ここでの提案やさまざまなアプローチにも非常に感謝しています。さまざまなアプローチを試してみましたが、これは最も近いものですが、もう一度ブロックされます。

これは私のコードAPI呼び出しを行うと、ブラウザに表示されている:(注意:これは、ページの正確な数を持っている) enter image description here

$.ajax({ 
url: "/services/data/v35.0/chatter/files/069R0000000O8reIAC/content?versionNumber=1", 
headers: {"Authorization": "OAuth xxxxxxxxxxxx"}, 
contentType: "application/pdf", 
success: function(data) 
{ 

     var blob = new Blob([data], {type: "application/pdf"}); 
     window.open(URL.createObjectURL(blob));  

}, 
type: 'GET' 
}); 

これは、このようになりますページを開きます

そのリクエストでフィドラーを見て、レスポンス本文をファイルとして保存しても、pdfは良好です!

助けてください。 ありがとう

+0

ねえ、私は同じ問題に遭遇しました。あなたはあなたの理由を知っていますか?ありがとう – luciferche

答えて

0

この質問はかなり古くなっていますが、私はこの問題に直面して以来、私は先に進んで私のソリューションを共有すると思っていました。

私の解決策は、ContentTypeだけでなく、 "application/pdf"を含めるだけでなく、ContentDispositionを "inline"として含めることでした。

関連する問題