今天朋友在做文件下载时遇到了一个问题,整个请求后台没有报一点错,而且请求也进入了响应Controller,但是页面就是没有任何响应,让我帮看下文件下载代码是否有问题。
所有下载文件代码看了一遍确实没发现任何问题,我百思不得其解。突然想到会不会是前端代码存在什么问题,让朋友看了下浏览器(firefox)控制台信息,发现了一个"xml格式解析不正确"的错误,我意识到应该是response回来的数据应该是被什么解析了导致无法下载,随即我想到了一种可能,询问朋友下载文件请求是否是使用ajax发起的,得到的答案是肯定的,让朋友改成form表单方式请求,果然文件可以正常的下载了。
ajax发起的请求会对响应的数据当做字符串进行解析,后台响应的流文件在被下载前就已经被ajax回调解析了,要下载文件可以使用form表单或者window.location.href等其它方式来请求。
这里做这个记录希望能帮到遇到同样问题的人吧,码路漫漫、共同求索。