2017-03-08 23 views
0

私はangularjs/laravelアプリケーションを作成しています。特定のデータをPDFにエクスポートする機能を実装する必要がありました。 PDFはlaravel dompdfを使用してバックエンドで生成され、GET要求の結果として返されます。私はまた、Angular File Saverを使用して、要求の成功コールバックでファイルを保存する処理を行います。これまでのコードは角でこれのように見えますクライアント側で作成されたBLOBが新しいデータで更新されない

function (response) { 
    var data = new Blob([response.data], { type: 'application/pdf' }); 
    console.log(data); 
    FileSaver.saveAs(data, 'balance.pdf'); 
} 

これはうまくいきます。 PDFが正しく生成され、保存されます。問題は、データ(CRUD操作 - これも正しく実行されます)を更新した後で、エクスポート関数を呼び出してPDFを再度保存すると、古いデータとともに保存されることです。 console.log(data)行は、Blobが常に同じサイズで作成されていることを私に示しています(なぜ新しいキーワードを使用しているのかわからないので、私は間違っている)。更新されたデータを使用してPDFを取得するには、ブラウザを手動で更新する必要があります。これはSPAの目的を破ってしまい、ユーザーに混乱を招くことになります。なぜこのようなことが起こったのか、誰かが何らかのヒントを提供できれば、私はそれを感謝するでしょう。事前に感謝します

+0

ajaxからresponse.dataを確認しましたか、バックエンドで生成されたpdfは正確ですか? –

+0

@ARIFMAHMUDRANA pdfは正確です。私が言ったように、輸出機能は正常に動作します。私は結果として正しいPDFをダウンロードしてダウンロードします。問題は、データを変更してダウンロードを再開すると、PDFが更新されないということです。手動でブラウザを更新してダウンロードを開始すると、正しいデータが得られます – hrivera

答えて

0

問題は解決された問題は、$ http要求の設定で設定されたキャッシュ属性で問題でした。私はそれ以前に多くの連続した要求があった場合にサーバーの負荷を軽減するようにこれを設定しました。

関連する問題