我尝试将 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")
客户端得到一个带有良好标头、良好数据的响应,但从不开始任何下载。
我错过了什么?