Javascript 通过jquery从java下载文件
我在jquery下载文件时遇到问题 我有一个post函数,在java代码中发送请求 我返回了文件,但没有下载 输入Javascript 通过jquery从java下载文件,javascript,java,jquery,file,Javascript,Java,Jquery,File,我在jquery下载文件时遇到问题 我有一个post函数,在java代码中发送请求 我返回了文件,但没有下载 输入 <input type="button" id="export-csv" value="Export result in CSV"/> Java代码 @RequestMapping(value="/user/writeCsv",method=RequestMethod.POST) public FileWriter writeCSVFile(H
<input type="button" id="export-csv" value="Export result in CSV"/>
Java代码
@RequestMapping(value="/user/writeCsv",method=RequestMethod.POST)
public FileWriter writeCSVFile(HttpServletResponse response,ServerSearchCommand ssc, Model model, BindingResult result) throws IOException {
FileWriter fileWriter= new FileWriter("/tmp/searchcsv.csv");
fileWriter.flush();
//WRITE DATA FILE
fileWriter.close();
return fileWriter;
}
你根本不能。使用Ajax时,由于安全原因,无法下载文件。您所能做的就是提交表单请求。如果您不想提交表单,您可以在get请求中编写响应对象中的文件:-
@RequestMapping(value="/user/writeCsv",method=RequestMethod.Get)
public void writeCSVFile(HttpServletResponse response,ServerSearchCommand ssc, Model model, BindingResult result) throws IOException {
OutputStream outStream = response.getOutputStream();
// Write data to this outStream
outStream.close();
}
在前端,将文件附加到iFrame并使iFrame stye=display:none:-
var url = contextPath + "/user/writeCsv";
var hiddenIFrameID = 'frameid',
iframe = document.getElementById(hiddenIFrameID);
if (iframe === null) {
iframe = document.createElement('iframe');
iframe.id = hiddenIFrameID;
iframe.style.display = 'none';
document.body.appendChild(iframe);
}
iframe.src = url;
非常感谢大家!你好:)我该怎么办?@marcoajax不直接支持它,但有一些解决方法
var url = contextPath + "/user/writeCsv";
var hiddenIFrameID = 'frameid',
iframe = document.getElementById(hiddenIFrameID);
if (iframe === null) {
iframe = document.createElement('iframe');
iframe.id = hiddenIFrameID;
iframe.style.display = 'none';
document.body.appendChild(iframe);
}
iframe.src = url;