2016-04-26 10 views
1

私はpdfKitを使っていくつかのpdfファイルを生成しています。ユーザーはこのファイルを取得するためにボタンをクリックする必要があります。このファイルはその時点でサーバーで生成されます。さらに私はサーバー側ルーティングのためにPickerを使用しています。私が得ることを期待するメテオ:ボタンをクリックしてサーバー側で生成されたファイルを取得する

server.js

Picker.route('/generate/getPdf', function(params, req, res, next) { 
    var doc = new PDFDocument({size: 'A4', margin: 50}); 
    doc.fontSize(12); 
    doc.text('PDFKit is simple', 10, 30, {align: 'center', width: 200}); 
    res.writeHead(200, { 
     'Content-Type': 'application/pdf', 
     'Content-Disposition': 'attachment; filename=test.pdf' 
    }); 
    res.end(doc.outputSync()); 
}); 

HTML

<template name="example"> 
    <button id="generatePdf">Generate it</button> 
</template> 

client.js

Template.example.events({ 
    'click #generatePdf': function(event) { 
     HTTP.call('GET', 'http://localhost:3000/generate/getPdf', {}, function(error, response) { 
      if (error) { 
       console.warn(error); 
      } 
     }); 
    } 
}); 

私がボタンをクリックするとpdfファイルが表示されますが、何も起こっていません。私が手動でURLに行くと、私はファイルを取得します。だから私は何が間違っているの?

答えて

1

Content-Dispositionヘッダーを添付ファイルに設定しているため、最も簡単な解決策は、新しいタブでダウンロードを開始することです。

あなたclick #generatePdfイベントハンドラを削除してみて、あなたのテンプレートでは、このような何かを:

<a id="generatePdf" href="//localhost:3000/generate/getPdf" target="_blank">Click Me</a> 
関連する問題