我在下载某些报告时遇到问题。用户拥有主实体,然后从详细信息列表中进行选择。当用户单击按钮时,我按其主人对详细信息进行分组,并将请求发送到服务器,在该服务器上为每个主服务器创建SSRS报告并以MS Word格式返回。请求采用
的形式http://url/to/action/?masterID=guid&detailIDs=guid1,guid2,guid3
显然这是通过iframe
完成的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个细节(网址太长)时会出现问题。我尝试更改DownloadFile函数,因此它需要url和数据发布到服务器,但是当迭代数组,并执行连续的表单帖子,但只有第一次成功,而其他人不会通过。
我也试过迭代document.forms并提交它们,但它也失败了。
有没有办法启用此功能,还是被浏览器的引擎禁止?
答案 0 :(得分:0)
您必须使用HTTP POST方法将数据发送到生成结果的服务器。
url = '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);
}