首页新闻找找看学习计划

返回 FileStreamResult,视图jQuery要怎么回调??

1
[已解决问题] 解决于 2018-05-28 08:46

如图,我返回的是FileStreamResult, 那视图用jQuery怎么回调呢?

恶之必要的主页 恶之必要 | 初学一级 | 园豆:165
提问于:2018-05-26 09:18
< >
分享
最佳答案
1

function daochu() {

var xmlhttp=null;
if (window.XMLHttpRequest) {
// 针对非IE的标准浏览器
xmlhttp = new XMLHttpRequest();
}
else if (window.ActiveXObject) {
// 针对IE
try {
xmlhttp = new ActiveXObject("MSXML2.XMLHTTP");
}
catch (e) {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
}


xmlhttp.open("POST", "@Url.Action("Daochu")", true);
xmlhttp.responseType = "blob";
xmlhttp.setRequestHeader("client_type", "DESKTOP_WEB");
xmlhttp.onload = function () {
if (this.status === 200) {
var blob = this.response;
downloadFile("订单导出数据.xls", blob);
} else {
layer.msg("导出失败");
}
};
xmlhttp.send();
}

function downloadFile(fileName, content) {
if (window.navigator.msSaveOrOpenBlob) {
navigator.msSaveBlob(content, fileName);
} else {
var aLink = document.createElement('a');
var blob = new Blob([content], { type: 'application/vnd.ms-excel' });
var evt = document.createEvent("HTMLEvents");
evt.initEvent("click", false, false);//initEvent 不加后两个参数在FF下会报错, 感谢 Barret Lee 的反馈
aLink.download = fileName;
aLink.href = URL.createObjectURL(blob);
aLink.dispatchEvent(evt);
aLink.id = "alink";
aLink.click();
}
}

感谢@心存善念

恶之必要 | 初学一级 |园豆:165 | 2018-05-28 08:46
其他回答(1)
0
dudu | 园豆:41011 (高人七级) | 2018-05-26 10:27

我返回的是文件流,不是文件路径

支持(0) 反对(0) 恶之必要 | 园豆:165 (初学一级) | 2018-05-26 10:34

高手找呢文章很准确

支持(0) 反对(0) _York | 园豆:2 (初学一级) | 2018-05-28 15:29
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册