与location.replace()陷入无休止的刷新循环

时间:2017-10-11 01:47:40

标签: javascript redirect url-redirection

我有一个简单的javascript代码,用于在按钮点击时重定向页面。不知何故,当页面重定向时,它会陷入无休止的页面刷新循环中。我做错了吗?

<!DOCTYPE html>
<html>
<body>

<button onclick="myFunction()">Replace document</button>

<script>
function myFunction() {
    location.replace("https://mypage.com/admin/");
}
</script>

</body>
</html> 

1 个答案:

答案 0 :(得分:0)

  • 缺少分号无所谓,JS不在乎
  • 缓存可能是一个问题,但不太可能。转到/ admin并按CTRL / CMD + SHIFT + F5清除你的网址。
  • 移动脚本标签不会有所作为。浏览器在向您显示任何内容之前已经解析了整个文档。

使用window.location.replace()代替location.replace()是最佳做法。如果https和域名相同,您可以编写<button onclick="window.location.replace('https://mypage.com/admin')">Replace</button>,甚至更好...replace('/admin')来简化代码。

当您在浏览器中转到https://mypage.com/admin/时会发生什么?我打赌这是问题所在,因为location.replace确实取代了地址栏中的位置:)将您的功能中的网址更改为&#34; https://google.com& #34;看看是否有效。

我把钱花在了

  • HTTPS正在服务器上重定向某些方式
  • / admin根据一些缺少的标题/ cookie / etc重定向
  • / admin
  • 出了点问题

如果它是重定向的东西,在大多数浏览器中,您会看到关于&#34;太多重定向的错误&#34;。

PS-赞成成为ML!我们是一种罕见的品种:)