Ajax 调用下载从 RESTful 服务返回的文件

2024-02-16

我对 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(使用前将#替换为@)

Ajax 调用下载从 RESTful 服务返回的文件 的相关文章

随机推荐