先描述问题,今天小伙伴遇到个问题,通过window.open打开一个后端返回的文件地址时总是不能达到预期的目的(打开或下载)。主要是在chrome上不成功,在edge还是可以成功的。并且本地运行前端项目时即使是chrome也是可以的。查到最后是因为测试环境地址是https协议,而接口返回的文件地址是http的,众所周知https里面访问http的页面或接口是有安全问题的,所以就失败了。
这个问题用了十来分钟才搞清楚。主要是因为代码中用window.open来打开,调用时只传递了一个文件地址,默认浏览器会打开一个新的tab,以为报错,tab会马上关掉,根本没办法看到错误,后来在window.open调用时传递了第二个参数,值为’_top’,这样在控制台中就看到错误了。
后面还发现,这种情况只针对xlsx文件出现,如果文件是pdf的就能正常打开,真是奇怪
如果对您有帮助,请点赞哦:)