小编典典

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

ajax

我是AJAX的新手。我正在使用AJAX向服务器发送请求。该服务返回一个文本文件。但是,返回数据时没有下载框出现。返回文件的其余服务如下:

@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时,它不会下载文件。请咨询。


阅读 244

收藏
2020-07-26

共1个答案

小编典典

建议很简单:您不能通过AJAX下载文件-这是一项安全策略。我的意思是您可以下载数据,但不能从JavaScript端将其保存到磁盘。

如果您想点击下载文件,则只需将其添加hrefa标签中即可。或使用文件的打开一个新窗口URL

2020-07-26