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

2022-08-30 19:39:52

使用 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"/> 

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


答案 1

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

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

答案 2

在JS中设置位置的更好方法是通过以下方式:

window.location.href = 'https://stackoverflow.com';

是使用 PHP 还是 JS 来管理重定向取决于代码正在做什么以及如何执行。但是,如果您能够使用PHP;也就是说,如果你打算使用PHP将一些JS代码发送回浏览器,只是告诉浏览器去别的地方,那么逻辑建议你应该去掉中间人,直接通过PHP告诉浏览器。