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

l2a*_*lba 15 javascript php meta redirect

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

<script>window.location="https://stackoverflow.com";</script>
Run Code Online (Sandbox Code Playgroud)

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

header('Location: https://stackoverflow.com');
end();
Run Code Online (Sandbox Code Playgroud)

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

关于使用什么 <meta>

<meta http-equiv="refresh" content="0;url=https://stackoverflow.com"/> 
Run Code Online (Sandbox Code Playgroud)

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

Dam*_*son 21

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

<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


Win*_*ute 11

在JS中设置位置的更好方法是:

window.location.href = 'https://stackoverflow.com';
Run Code Online (Sandbox Code Playgroud)

是否使用PHP或JS来管理重定向取决于您的代码正在做什么以及如何做.但是如果你能够使用PHP; 也就是说,如果您要使用PHP将一些JS代码发送回浏览器,只是告诉浏览器去其他地方,那么逻辑建议您应该删除中间人并直接通过PHP告诉浏览器.


But*_*ak3 8

这取决于您希望将用户重定向到另一个页面的方式和时间.

如果您想立即将用户重定向到另一个页面,而他之间没有看到任何网站,您应该使用PHP header重定向方法.

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

meta每当您看到"您的下载应该自动启动"消息时,标记刷新通常用于下载站点.您可以让用户加载页面,等待一段时间,然后在没有Javascript的情况下重定向(例如,转移到要下载的文件).