在访问使用 HTTPS 协议的网站时,尝试通过 a 标签下载来自 HTTP 协议的资源可能会失败。这是因为浏览器将此视为不安全的混合内容,并会拦截下载。
解决方案
此问题的解决方案是确保下载资源也使用 HTTPS 协议。如果无法做到,可以使用以下两种方法:
问题解析
-
为什么代理转发和接口调用在 HTTPS 环境下可以下载文件?
因为这两种方法都将请求转换为 HTTPS,从而绕过了浏览器的混合内容安全机制。
-
能否直接跳过代理转发,直接调用接口?
可以。如果接口地址本身就是 HTTPS 协议,并且处理了跨域问题,则可以省去代理转发步骤。但是,需要注意的是,这种方法要求浏览器支持跨域资源共享 (CORS)。