问题:
1.Chrome 浏览器默认不信任使用 HTTP 协议传输的文件(这个文件就到别的浏览器(比如火狐)就是正常的)
2.谷歌浏览器https协议就是正常的
解决方法:
如果 window.location.href 方法也不能解除浏览器阻止 HTTP 协议的文件下载,可能是因为浏览器的安全设置仍然阻止了该操作。在这种情况下,可以尝试以下方法:
- 在服务器端设置响应头:如果您有访问服务器端的权限,可以在服务器端设置响应头,以便浏览器可以下载 HTTP 协议的文件。在 HTTP 响应头中,设置 Content-Disposition 属性为 attachment,并指定文件名。例如,在 PHP 中可以使用以下代码:
php
header('Content-Disposition: attachment; filename="file.pdf"');
readfile('example.com/path/to/fil…');
在上面的代码中,将 Content-Disposition
属性设置为 attachment
,指示浏览器下载文件而不是在浏览器中打开。filename
属性指定文件名为 "file.pdf"
,readfile()
方法读取文件内容并将其输出到浏览器。
- 使用第三方下载工具:可以使用一些第三方下载工具,例如迅雷、Internet Download Manager 等,来下载 HTTP 协议的文件。这些工具通常会在下载时自动绕过浏览器的阻止。
需要注意的是,使用 HTTP 协议下载文件存在安全风险,建议尽可能使用 HTTPS 协议下载文件以提高网络安全性。
相关案例:
最近升级了chrome浏览器,发现不能从http网站下载文件了。
F12打开console,发现每次从http网站下载文件,console都会出现下载被blocked(屏蔽)的提示:
原来chrome认为 非HTTPS网站都是不安全的,自动屏蔽了 来源于http文件的下载。
chrome果然是大佬,说屏蔽就屏蔽。
解决方法如下:
浏览器地址栏输入:chrome://flags/
然后搜索 disallow-unsafe-http-downloads ,出现搜索结果如下, 选择 Disabled。重启浏览器,然后就可以下载Http文件了。