Layui中怎么在表单进行文件下载 ajax?blob?

刚开始我用的AJAX请求的后端,但是返回的数据流被解析成字符串,无法下载。

其实整个下载逻辑已经在后端进行判断,有无权限都由后端返回,所以前端就是一个请求而已。

layer.open

一个layer.open也是能实现下载,会一直显示加载状态,代码如下:

文件下载后这个窗口一直在转圈圈。

网上搜索资料后,给出了很多方法,ajax?blob?原生js?

但我觉得都很繁琐,和我的需求不符。

我当前已经在layui的表单中,已经有对应的数据传送到后端,只需要呈现后端反馈的结果即可。

所以直接打开新窗口不就可以了吗?

于是我这样写:

能弹出窗口,能下载问题,问题看起来到这来结束了。

但实际上,我的开发需求是呈现后端返回,打开新窗口后脱离了layui,无法实现弹窗等操作,除非重新渲染页面。

故而,回到layui.open

加上窗口时间

0.1秒内关闭打开的窗口,并且后端返回时,不返回到该窗口,返回到父级窗口,也就是对父级进行弹窗。

如此,既能实现下载,又能收到后端返回触发,并且还很简单。

原创文章,作者:蓝洛水深,如若转载,请注明出处:https://blog.lanluo.cn/10409

发表评论

登录后才能评论