用js打开新页面open或window.location.href打开百度网盘后都显示:啊哦,你所访问的页面不存在了。
window.open(baidu_url);
window.location.href = baidu_url;
在浏览器上,回车后网盘资源是可以打开的,刷新也是打开的。这是很奇怪的事。说明网盘链接没有失效,问题肯定出在百度上的。
f12查看,页面返回的是404,
再看下请求表单里的Referer
,带有打开链接的来源。既然资源链接正常复制粘贴浏览器打开是正常打开的,js打开窗口失效404,说明百度根据Referer
来源跳到404,就是域名被百度给墙了。
解决方法:
方法1:禁用新窗口打开时读取Referer,在js打开新页面head
里增加,
<meta name="referrer" content="no-referrer">
方法2:js open时禁用Referer
window.open('javascript:window.name;', '<script>location.replace("'+baidu_url+'")<\/script>');