如上图,通过ajax进入后台导出方法,后台输出的文件流在客户端上没反应,
但是方法执行成功了,然后在success里再执行一遍导出方法,客户端才下载成功。
在网上查了资料发现得出总结
Ajax直接调用后台的下载方法是导出不了文件的,原因是ajax无法接收后台的文件流,所以,需要再次用window.location=url或者window.open(url)下载;
但是这样的话,后台的导出方法就被调用了两次,第一次是ajax进入导出方法,没有报错的话,就第二次进入方法,
所以不如直接用window.location=url下载
//关于window.location和window.open()的区别,后者下载的时候会打开一个新的窗口,下载文件成功时,窗口关闭,一般下载够快的话,是看不到窗口的!但是前者下载是不会打开新的窗口,建议使用前者!