参看网站: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