Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用AJAX下载jasper报告的PDF存档?_Javascript_Java_Jquery_Ajax - Fatal编程技术网

Javascript 如何使用AJAX下载jasper报告的PDF存档?

Javascript 如何使用AJAX下载jasper报告的PDF存档?,javascript,java,jquery,ajax,Javascript,Java,Jquery,Ajax,我有一个jasper报告,我需要使用AJAX打印,但是,使用jquery AJAX调用它不起作用: $.ajax( { method: 'POST', url: 'ExportReport', async : false, data: { typ

我有一个jasper报告,我需要使用AJAX打印,但是,使用jquery AJAX调用它不起作用:

    $.ajax(
                {
                    method: 'POST',
                    url: 'ExportReport',
                    async : false,
                    data: { 
                          typeOfClient          : _type,
                          mouthOfSelect         : _mounth
                },
                    success : function (html) {
                        alert("Sucess");
                }
如果我使用提交表单,此工作:

//create dynamic form
var formularioElement = document.createElement('form');
formularioElement.setAttribute('id', 'formSync');
formularioElement.method = 'POST';
formularioElement.action = 'ExportReport';

// Create input
var formularioInput = document.createElement('input');
formularioInput.type = 'text';
formularioInput.name = 'typeOfClient';
formularioInput.value = _type;

// Create input 2
var formularioInput2 = document.createElement('input');
formularioInput2.type = 'text';
formularioInput2.name = 'mouthOfSelect';
formularioInput2.value = _mouth;

formularioElement.appendChild(formularioInput);
formularioElement.appendChild(formularioInput2);

// add the form to DOM
document.body.appendChild(formularioElement);

// submit
formularioElement.submit();
这两个代码都调用服务器端并创建jasper PDF equals,但只需
表单.submit()
下载文件,
ajax代码不下载文件


我可以用AJAX来做吗?

你不能用AJAX来做,因为JS不能直接将存档保存到计算机上(出于安全原因)。

你不能用AJAX来做,因为JS不能直接将存档保存到计算机上(出于安全原因)。

从技术上讲,这个问题与使用AJAX下载PDF没有什么不同。JasPurress与这个问题并不相关,除非你的代码使用JasperReports.yes生成问题,你是RIGTH,我只需要用Ajax下载PDF文件,你知道这是可能的吗?考虑使用servlet而不是Ajax。HTML不必比
更复杂。适用于所有浏览器,不需要AJAX。如果要隐藏参数,请将其设置为带有提交按钮的HTML表单,该按钮向Servlet发出HTTP POST请求,而不是GET请求。@DaveJarvis,谢谢您的评论,我已经成功地使用表单完成了此操作,并且可以正常工作,但我需要将所有“submit()”系统调用更改为ajax(别问我为什么,我刚接到老板的命令)我已经设法更改了除此之外的所有报告,使用AJAX时输出文件不会被下载。从技术上讲,这个问题与使用AJAX下载PDF没有什么不同。JasperReports与这个问题并不真正相关,除非您的代码在使用JasperReports生成报告时遇到问题。是的,您是正确的,我只需要进行下一步一个带有Ajax的PDF文件的广告,你知道这是可能的吗?考虑使用servlet而不是Ajax。HTML不必比<代码> <代码>更复杂。在所有浏览器上工作,不需要Ajax。如果你想隐藏参数,就让它成为一个HTML表单,用提交按钮向servlet发出一个HTTP POST请求,而不是一个get R。equest@DaveJarvis,谢谢你的评论,我已经设法用表单完成了这项工作,但我需要将所有“submit()”系统调用更改为ajax(别问我为什么,我刚从老板那里得到这个命令),我已经设法更改了除此报告以外的所有内容,使用ajax,输出文件不会下载。