CSV データをクライアントに送信しようとしています。
これが私がどのように進めるかです: クライアント側: ファイルを取得するためのサーバーへの ajax 呼び出し。
$.ajax({
url:"/csv/"+source,
method:'post',
data:JSON.stringify(json),
contentType: "application/json; charset=utf-8"
});
サーバー側: ファイルを生成し、クライアントに送り返します。
File file = CSVGenerator.generateFromJson(source, request().body().asJson());
response().setHeader("Content-Lenght", String.valueOf(file.length()));
response().setHeader("Content-Disposition", "attachment; filename=\""+file.toString()+"\"");
return ok(file).as("text/csv");
私は多くのリターンを試みました。たとえば、私はこれを試しました:
return ok(new FileInputStream(file)).as("text/csv");
次のような多くのヘッダーも試しました。
response().setContent("text/csv");
また
response().setHeader("Content-Type","text/csv");
それ以外の.as("text/csv")
クライアントは、適切なヘッダーと適切なデータを含む応答を受け取りますが、ダウンロードを開始しません。
私は何が欠けていますか?