首页 > 技术文章 > 文件下载不可以使用ajax

shj-com 2018-04-19 16:23 原文

参看网站:https://blog.csdn.net/fan510988896/article/details/71520390

总结一下为什么下载请求不能放在ajax里发送:
原因:因为response原因,一般请求浏览器是会处理服务器输出的response,例如生成png、文件下载等,然而ajax请求只是个“字符型”的请求,即请求的内容是以文本类型存放的。文件的下载是以二进制形式进行的,虽然可以读取到返回的response,但只是读取而已,是无法执行的,说白点就是js无法调用到浏览器的下载处理机制和程序。
文件下载可以使用window.location.href(),也可以使用window.open(),还可以使用form表单提交。
function downloadClaimTemplate() {
    var channelId = $("#channelId").val();
    var riskCode=$("#riskCode").val();
    var  actionUrl ="/claimService/downloadClaimTemplate?channelId="+channelId+"&riskCode="+riskCode;
    window.open(actionUrl);
};

 至于有些人说火狐有问题,或者其他浏览器有兼容性的问题以及详情,可以看一下这篇博文,至少我现在用IE和google是没有问题的。

详情可以参考该地址:https://blog.csdn.net/zhoumengshun/article/details/71405963

推荐阅读