Java 如何将一个PDF文件(OutputStream)从servlet发送到ajax响应以在浏览器中打开?
我正在使用ajax向我的servlet发送请求以生成报告 报告正在生成,但我想在浏览器中显示它 这是我的ajax请求代码Java 如何将一个PDF文件(OutputStream)从servlet发送到ajax响应以在浏览器中打开?,java,ajax,servlets,dynamic-reports,Java,Ajax,Servlets,Dynamic Reports,我正在使用ajax向我的servlet发送请求以生成报告 报告正在生成,但我想在浏览器中显示它 这是我的ajax请求代码 $.post('servleturl',{ from : from, to : to },function(data){ // What should I write here in order to display report in browser }); 我的se
$.post('servleturl',{
from : from,
to : to
},function(data){
// What should I write here in order to display report in browser
});
我的servlet代码
OutputStream outputstream = response.getOutputStream();
//This line converts the report to PDF
report.toPdf(outputstream);
outputstream.close();
//Converting the outputstream to JSON to pass as response
json = new Gson().toJson(outputstream);
response.setContentType("application/json");
response.getWriter().write(json);
您的问题是返回序列化为JSON的PDF,而不是实际的文件字节。是否要在当前视图中渲染浏览器?如果是这样的话,您可以查看其中一个JavaScript库,否则您可以生成PDF,将其保存在服务器上的某个位置,并返回JavaScript的路径,该路径将作为页面上的链接呈现。选项很少,这取决于您希望它如何准确工作。不要将PDF之类的二进制文件封装在JSON中。只需将其作为二进制流发送到客户端。是否有人能给出通过ajax在浏览器中打开文件的示例或示例代码?