循环发送请求下载踩过的坑
直接贴代码:
原代码是这样写的:
$.each(rowsDatas, function (i, data) {
var ID__ = data.ID__.substring(6);
ID__ = ID__.substring(0, ID__.length - 7);
window.open(basepath + 'ExportFile/downloadUserExcel?f=' + forminfo.ID + '&&b=' + ID__, "_self");
})
// 打算直接用循环请求下载,结果每次循环后台都有响应, 但前台只能下载一次
//后网上看各种解答,发现 多次循环同样的请求下载浏览器会有限制; 后打算加延时解决
$.each(rowsDatas, function (i, data) {
setTimeout(function () {
var ID__ = data.ID__.substring(6);
ID__ = ID__.substring(0, ID__.length - 7);
window.open(basepath + 'ExportFile/downloadUserExcel?f=' + forminfo.ID + '&&b=' + ID__, "_self");
}, 500);
})
// 结果延时仍然是不起作用的
// 看各种贴,踩不少坑后终于想到解决办法
$.each(rowsDatas, function (i, data) {
var ID__ = data.ID__.substring(6);
ID__ = ID__.substring(0,ID__.length-7);
try {
var elemIF = document.createElement("iframe");
elemIF.src = basepath + 'ExportFile/downloadUserExcel?f=' + forminfo.ID + '&&b=' + ID__;
elemIF.style.display = "none";
document.body.appendChild(elemIF);
} catch (e) {
alert("下载异常!");
}
})
// 解决
//希望各位少踩坑,仅供参考