https下 a标签下载文件失败?
背景:
项目访问地址:https://xxx.com
a标签下载文件的方式,类似
const url = 'http: // 10.9.13.2:10056/file-storage/file/subject/yqtempalte.xlsx'
<a :href="url"></a>
在本地下载正常,部署到正式环境之后,下载失败
定位原因:是项目访问https的原因,更改成http之后下载正常。
解决方案:
进行代理转发,改成调用接口的方式进行下载
- 设置代理
"/api/file-storage","http://10.8.15.1:10040/file-storage/"
书写、调用接口
接口url:
'/file-storage/file/subject/yqtempalte.xlsx'
调用接口之后本地和正常环境下都能正常下载文件。
问题:
- 为什么代理转发、接口调用的方式在正常环境中https可以正常下载文件,而a标签url下载的方式会出错?
- 接口调用下载的形式下,是否可以直接省去代理转发这步。接口url地址改成:'http: // 10.9.13.2:10056/file-storage/file/subject/yqtempalte.xlsx'
回复
1个回答
test
2024-07-09
https
网站,下载http
资源,浏览器视为不安全,会被拦截。
方法:
- 下载资源也用https资源,且处理好跨域问题;
- 可以使用新窗口window.open()来请求下载。
回复
适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容