用于重定向的 window.location (JS) 与 header() (PHP)

新手上路,请多包涵

使用 JS : (在 <head> 标签中)

 <script>window.location="https://stackoverflow.com";</script>

使用 PHP : (在 <head> 标签中)

 header('Location: https://stackoverflow.com');
end();

我应该使用哪一个?或其他 ?

那么使用 <meta> 怎么样?

 <meta http-equiv="refresh" content="0;url=https://stackoverflow.com"/>


很多好的答案,我不知道我会接受哪个答案,非常感谢

原文由 l2aelba 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.3k
2 个回答

所有选项的结果都是相同的。重定向。

<meta> 在 HTML 中:

  • 显示您网站的内容,并在几(或 0)秒后重定向用户。
  • 不需要启用 JavaScript。
  • 不需要PHP。

window.location 在JS中:

  • 需要启用 Javascript。
  • 不需要PHP。
  • 显示您网站的内容,并在几(或 0)秒后重定向用户。
  • 重定向可以取决于任何条件 if (1 === 1) { window.location.href = 'http://example.com'; }

header('Location:') 在 PHP 中:

  • 不需要启用 JavaScript。
  • 需要 PHP。
  • 重定向将首先执行,用户永远看不到后面的内容。 header() 必须是 php 脚本中的第一个命令,然后才能输出任何其他命令。如果您尝试在标头之前输出一些内容,将收到 Warning: Cannot modify header information - headers already sent

原文由 Damonsson 发布,翻译遵循 CC BY-SA 3.0 许可协议

这取决于您希望如何以及何时将用户重定向到另一个页面。

如果您想 立即将用户重定向 到另一个页面而不让他看到任何中间站点,您应该使用 PHP header 重定向方法。

如果您有 Javascript 并且 用户的某些操作 必须导致他进入另一个页面,那么您应该使用 window.location

meta 标签刷新经常在下载站点上使用,只要您看到这些“您的下载应该自动开始”消息。你可以让用户加载一个页面, 等待一段时间,然后在没有Javascript的情况下将他重定向(例如到一个要下载的文件)。

原文由 Butt4cak3 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题