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