Ajax call to download file returned from RESTful service
ajax, jquery, rest
Solution
Advice is simple: you cannot download files via AJAX - it's a security policy. I mean you can download the data, but you can't save it to disk from JavaScript side.
If you want to download a file on click, then you can just add `href` to you `a` tag. Or open a new window with file's `URL`.
Problem
I am fairly new to AJAX. I am sending a request to server using AJAX. The service returns a text file. But no download box appears when data is returned. The rest service that returns the file is as follows: ``` @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(); } } ``` My AJAX call is as follows: ``` $('a#link').click(function(event){ event.preventDefault(); $.ajax({ url: '/reports/rest/examples/getcode', type: 'POST' }); }); ``` The file downloads successful without AJAX. With AJAX, it doesn't download the file.Please advice.