在运行一个Ajax实例时,负责处理的php页面中的header()总是无法跳转到指定的网页,首先可能的错误:
1.header("Location:xx.php");中Location和冒号之间不能有空格,也不能使用全角字符的冒号;
2.header()之前不能有输出的语句。
仔细看了一下,我的代码里没有这样的问题,只好求助论坛高手,后来经指导加入了以下代码就可以跳转了:
$username = $_POST['username'];
$password = $_POST['passwd'];
$host = $_SERVER['HTTP_HOST']; //加入的代码
$uri = rtrim(dirname($_SERVER['PHP_SELF']), '/\\'); //加入的代码
if($password == "123"){
header("Location:http://$host$uri/friendlist.php");
}else{
header("Location:http://$host$uri/login.php");
}
网上搜了一下,如果完整的URL是http://www.126.com/index.php
$_SERVER['HTTP_HOST']就等于"http://www.126.com"
$_SERVER['PHP_SELF']就等于"/index.php"
rtrim()方法从右删除字符,这里是删除了'/\\',去掉了"/index.php"中的"/"
dirname(path)方法返回路径中的目录部分。
问题应该出在路径上