2017-08-24 27 views
0

私はpdfへのhttp応答をダウンロードする簡単な作業をしようとしています。私はpdfファイルを生成していますが、「PDFを開けませんでした」というエラーが表示されています。バイト配列をpdfに変換してダウンロードするには

ここで、レスポンスの外観を示します。 screenshot

これは私がやっていることです。

let blob = new Blob([response.data], { type: 'application/pdf' }) 
FileSaver.saveAs(blob, 'foo.pdf') 
+1

応答(PDF、テキストファイルで、 '%のPDF.'で始まる必要があります)PDFファイルのようにそこには見えません。 XMLHttpRequestが正しいURIを使用していることを確認しましたか? – K3N

+0

私はそれが何であるか分かりません。私はそれを表示するさまざまな方法を試しています。ここで私は二股に分かれて、応答を追加しました。多分このことが分かるでしょうか? – texas697

+0

http://jsfiddle.net/8vzz8sk9/ – texas697

答えて

1

レスポンスの文字列は、Base64でエンコードされているようです(fiddleを参照)。あなたはfetch()(または古いブラウザ用XMLHttpRequest())を使用して、それをデコードすることができます。

fetch("data:application/pdf;base64," + response.data) 
    .then(function(resp) {return resp.blob()}) 
    .then(function(blob) { 
    FileSaver.saveAs(blob, 'foo.pdf') 
    }); 
関連する問題