a标签本来是跳转却变成了下载的bug,在谷歌等部分浏览器遇到

       a标签在本地开发是正常跳转的,发布到线上也是正常跳转,然后 线上的偶尔会出现点击a连接跳转却变成下载的情况。不过多次刷新或重启浏览器就好了。


经测试,谷歌浏览器会出现这样的情况,其他浏览器没测。

原因是大多数情况下,点击a连接后查看控制台,请求头是Content-Type:text/html;这种情况下可以跳转,但是偶尔会出现类型不是html,而是其他类型,那这时候浏览器就误认为它是可以下载的,所以就下载而不是跳转。


参考的解决办法;

1.在a标签上添加rel=“noopener noreferrer”,我们知道rel="noopener noreferrer"的作用是能保证网页跳转的时候具有一定的安全性,如我们要跳转到第三方网站,添加这个属性后,第三方就不能拿到源页面的window.opener。但是能不能解决跳转变成下载的bug没法测,所以不知道有没有用。


2.设置后台服务器返回的类型。配置web服务器的配置,要把Response.ContentType=“text/html”


相关解决办法:

   https://juejin.cn/post/6844903879042138120

   https://www.oschina.net/question/2620663_2286825

   https://bbs.csdn.net/topics/392570096


落魄前端-小陈
0
0
0
评论
浏览
收藏