使用location.replace()陷入了无休止的刷新循环



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

<!DOCTYPE html>
<html>
<body>
<button onclick="myFunction()">Replace document</button>
<script>
function myFunction() {
location.replace("https://mypage.com/admin/");
}
</script>
</body>
</html> 
  • 缺少分号无关紧要,JS不在乎
  • 缓存可能是个问题,但可能性不大。转到/admin并按CTRL/CMD+SHIFT+F5清除您的url
  • 移动脚本标记不会有什么不同。浏览器在向您显示任何内容之前已经解析了整个文档

最好使用window.location.replace()而不是location.replace()。您可以通过编写<button onclick="window.location.replace('https://mypage.com/admin')">Replace</button>来简化代码,如果https和域名相同,则可以编写更好的...replace('/admin')

当你去https://mypage.com/admin/在您的浏览器中?我敢打赌这就是问题所在,因为location.replace实际上是在替换地址栏中的位置:)将函数中的url更改为"https://google.com"看看这是否有效。

我把钱放在上

  • HTTPS在服务器上以某种方式被重定向
  • /管理员正在基于一些丢失的头/cookie等进行重定向
  • /admin出现问题

如果是重定向,在大多数浏览器中,你会看到一个关于"重定向太多"的错误。

PS-进入ML值得称赞!我们是稀有品种:)

最新更新