Java 从服务器返回CSV文件作为响应

Java 从服务器返回CSV文件作为响应,java,jquery,ajax,spring-mvc,Java,Jquery,Ajax,Spring Mvc,我试图从服务器返回一个文件作为响应,以便从客户端下载 我不知道我做错了什么,我按照一些例子,但我仍然无法下载该文件,请假设该文件已存储在目录中 这是我的密码: @RequestMapping(value="/reports/downloadCsv", method=RequestMethod.POST) public void saveToCsv( @Validated HttpServletRequest request, @V

我试图从服务器返回一个文件作为响应,以便从客户端下载

我不知道我做错了什么,我按照一些例子,但我仍然无法下载该文件,请假设该文件已存储在目录中

这是我的密码:

@RequestMapping(value="/reports/downloadCsv", method=RequestMethod.POST)
        public void saveToCsv( 
            @Validated HttpServletRequest request,
            @Validated  HttpSession session,
            @Validated HttpServletResponse response, 
            @RequestParam String report) { 
InputStream in = new FileInputStream("C:\\server\\reports\\AccessReport.csv");
        response.setContentType("text/csv;charset=utf-8"); 
        response.setHeader("Content-disposition", "attachment; filename=AccessReport.csv");
        FileCopyUtils.copy(in, response.getOutputStream());
        response.flushBuffer();

}
这是我的ajax调用:

$.ajax({
      url: "/server/reports/downloadCsv",
      type: "post",
      data: { 
          report: "AccessReport.csv"
          },
      type: 'POST',
      success: function(res){
      }
    });

你有错误日志和/或stacktrace吗?我的代码中没有异常,js中也没有。问题是文件没有从浏览器下载。我不确定我做错了什么,或者我遗漏了什么,但文件以绝对路径存在。这可能会对你有所帮助。为什么要用ajax处理响应?当您直接在浏览器中访问URL时,它是否起作用?为什么不使用
窗口。打开
?使用POST而不是GET也是违反直觉的。获取资源时应该使用GET请求。