2017-07-28 5 views
1

ファイルをダウンロードした後にページをリダイレクトしようとしています。 これはコードです:ダウンロードファイルの後にリダイレクトする - Nodejs

app.get('/log', function(req,res){ 
    return res.download('file.txt', function(err){ 
      if(!err){ 
       return res.render('index.html'); 
      } 
     }); 
}) 

しかし、私はこのエラーを取得するたびに: エラー:それらが送られた後、ヘッダーを設定することはできません。

ダウンロード後にリダイレクト/レンダリングする方法はありますか? (サーバー側でお願いします)。

答えて

1

ダウンロード応答でヘッダーが既に送信されているので、思うようにはできません。

レスポンスを自分で操作して、ファイルのダウンロードに必要なヘッダーを送信したり、ロケーションヘッダーを一緒に送信することで達成できます。リクエスターは、ロケーションヘッダーを理解し、それに応じてリダイレクトする必要があります。

たとえば、

const fileData = /* read file */; 
res.set({ 
    'Content-Type': 'text/plain', 
    'Location': '/' 
}); 
res.end(fileData); 
+0

「あなたと一緒に位置情報ヘッダーを送信しますか?そのためのコードスニペットは何でしょうか?ありがとう。 – AllanJack

+0

@AllanJackが更新されました。確認してください –

関連する問題