我对 AJAX 相当陌生。我正在使用 AJAX 向服务器发送请求。该服务返回一个文本文件。但返回数据时没有出现下载框。
返回文件的rest服务如下:
@Path("/examples")
public class ExampleCodesRest {
@POST
@Path("/getcode")
@Produces(MediaType.TEXT_PLAIN)
public Response getCodes(@Context ServletContext context){
String in=context.getRealPath("/WEB-INF/reports.jrxml");
File file=new File(in);
ResponseBuilder response = Response.ok((Object) file);
response.header("Content-Disposition",
"attachment; filename=\"file_from_server.log\"");
return response.build();
}
}
我的AJAX调用如下:
$('a#link').click(function(event){
event.preventDefault();
$.ajax({
url: '/reports/rest/examples/getcode',
type: 'POST'
});
});
文件在没有 AJAX 的情况下下载成功。
使用AJAX,它不会下载文件。请建议。
建议很简单:您不能通过 AJAX 下载文件 - 这是一项安全策略。我的意思是你可以下载数据,但不能从 JavaScript 端将其保存到磁盘。
如果您想点击下载文件,那么您只需添加href
to you a
标签。或者打开一个包含文件的新窗口URL
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)