我有这样的索引文件
<?php
include('file1.php');
include('file2.php');
?>
在 file1.php 中,我有如下代码。
<?php
echo "hai";
?>
我正在尝试使用 header('Location:index.php')
重定向页面。它会抛出一个错误,类似于输出已经开始。如果我们给出 echo,我知道 header它抛出一个错误。在这种情况下,我尝试使用 Javascript window.location.href='index.php'
进行重定向。它给了我预期的输出,并且没有错误。为什么? .
最佳答案
PHP header 命令正在向响应流发送一条指令,浏览器会将其解释为重定向到新位置。但是,就其性质而言,您只能在开始发送内容之前发送任何类型的 header 。在您的示例中,您发送内容“hai”,然后尝试发送 header 。
现在您的 JavaScript 由 JavaScript 引擎在浏览器中执行。因此,window.location 告诉 javascript 引擎让浏览器请求新页面。这与 http 流中包含的任何信息无关(理论上,该位置可能是 http 之外的其他内容,例如 ftp 或 mailto)。
关于php - 为什么 heder ('Location:index' )不工作但 window.location.href ='index.php' 工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4066595/