Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.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 JS连续表单下载_Javascript_Browser - Fatal编程技术网

Javascript JS连续表单下载

Javascript JS连续表单下载,javascript,browser,Javascript,Browser,我在下载一些报告时遇到问题。用户拥有主实体,然后从详细信息列表中选择。当用户单击一个按钮时,我会按其主机对详细信息进行分组,并将请求发送到服务器,在服务器上为每个主机创建并以MS Word格式返回SSRS报告。请求的形式为 http://url/to/action/?masterID=guid&detailIDs=guid1,guid2,guid3 目前,这是通过iframes实现的 function DownloadFile(url) { var iframe = docum

我在下载一些报告时遇到问题。用户拥有主实体,然后从详细信息列表中选择。当用户单击一个按钮时,我会按其主机对详细信息进行分组,并将请求发送到服务器,在服务器上为每个主机创建并以MS Word格式返回SSRS报告。请求的形式为

http://url/to/action/?masterID=guid&detailIDs=guid1,guid2,guid3
目前,这是通过iframes实现的

function DownloadFile(url) {
    var iframe = document.createElement("iframe");
    var id = 'iframe_' + Math.random() * 1000000000000000000;
    iframe.id = id;
    iframe.src = url;
    iframe.style.display = "none";
    document.body.appendChild(iframe);
    //removes window
    window.setTimeout(function () { $('#' + id).remove(); }, 9000);
}
当用户从网格中选择大约50个细节(url太长)时,这就是问题所在。我尝试更改DownloadFile函数,因此它需要url和数据才能发布到服务器,但当迭代数组并连续发布表单时,只有第一次成功,其他人无法通过

我还尝试遍历document.forms并提交它们,但也失败了


是否有办法启用此功能,或者浏览器引擎禁止此功能?

您必须使用HTTP POST方法将数据发送到生成结果的服务器

url='1〕http://url/to/action/?masterID=“+masterID
detailIDs=[guid1,guid2,guid3]

function DownloadFile(url, detailIDs) {
    var iframe = document.createElement("iframe");
    var id = 'iframe_' + Math.random() * 1000000000000000000;
    iframe.id = id; 
    iframe.style.display = "none";
    document.body.appendChild(iframe);
    //pseudo code, intention is to create a form and submit it from within the iframe. 
    iframe.submitForm(url, detailIDs);        

    //removes window
    window.setTimeout(function () { $('#' + id).remove(); }, 9000);
}

为什么要执行多个post请求?你能改变你的动作在一次调用中获取所有参数吗?我不认为是这样的。他想要做的是能够获取所有参数的列表并创建一个响应,但是URL有一个长度限制。对吧?问题基本上是在我们的用户身上。其中一个选项是在一个zip文件中下载所有文件,但我们不能这样做,因为我们不确定他们是否知道如何使用zip文件:)