当前位置: 移动技术网 > IT编程>开发语言>JavaScript > Web开发使用JS的异步请求下载文件浏览器无响应

Web开发使用JS的异步请求下载文件浏览器无响应

2020年07月17日  | 移动技术网IT编程  | 我要评论
Web开发使用JS的异步请求下载文件浏览器无响应1、前端页面关键代码...<button class="layui-btn layui-btn-sm" lay-event="downloadReport">下载报告</button>...<script>...if(obj.event === 'downloadReport'){ layer.msg("正在生成报告....,请稍等.....",{icon:6,time:20

Web开发使用JS的异步请求下载文件浏览器无响应

1、前端页面关键代码

...
<button class="layui-btn layui-btn-sm" lay-event="downloadReport">下载报告</button>
...

<script>
...
	if(obj.event === 'downloadReport'){
                layer.msg("正在生成报告....,请稍等.....",{icon:6,time:2000};
                $.get("testReport/downloadReportById",{"testId":data.id});
            }

....
</script>


       前端使用的是Layui的模板语法。
点击下载按钮浏览器没有响应,但谷歌开发者工具捕捉到了请求信息:
在这里插入图片描述
         这说明后端没有问题,下载的文件也被传过来了,但是不是我们想要的格式,上面这一推东西到底是怎么回事了?
         原来JQuery的ajax函数的返回类型只有xml、text、json、html等类型,没有“流”类型,所以我们要实现ajax下载,不能够使用相应的ajax函数进行文件下载。但可以用js生成一个form,用这个form提交参数,并返回“流”类型的数据。在实现过程中,页面也没有进行刷新。
         弄清楚了浏览器无响应的原因,解决方法就很简单了,我也懒得写JS了,直接将按钮换为超链接,点击超链接直接下载文件就行了。

<a class="layui-btn layui-btn-sm" href="testReport/downloadReportById?tested"+d.id>下载报告</a>

         博主码字不易,看完如果有一点收获,不妨点个赞!

本文地址:https://blog.csdn.net/weixin_40481076/article/details/107391233

如您对本文有疑问或者有任何想说的,请 点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网