无法使用标题
我试图让我的PHP文件重定向到一个HTML文件。
我的网站是这样构建的:
HTML ==> js分离文件(使用angular)===> PHP文件
然后php调用头函数 - 但不是重定向,而是打印我尝试打开的HTML页面的代码。
在调用头文件函数之前,我没有回应任何内容(尽管我在PHP文件的开头为Access Control使用了一个头文件)。
我也尝试用想要的URL回显“meta http equiv”标签,但它只是打印标签。
也许这是因为我使用php,js和HTML的单独文件?
谢谢!
这是我的PHP代码:
header("Access-Control-Allow-Origin: *");
//header("Content-Type: application/json; charset=UTF-8");
$servername = "localhost";
$username = "root";
$password = '';
// Create connection
$conn = mysqli_connect($servername, $username, $password, "myDB");
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
$client_data = file_get_contents("php://input");
$json = json_decode($client_data);
$sql = "SELECT Password FROM users WHERE Name="". $json->username .""";
$result = $conn->query($sql);
if ($result->num_rows >0) {
while ($row = $result->fetch_assoc()) {
if (password_verify($json->password ,$row["Password"])) {
header ('location: http://localhost/KickStartProject/views/register.html');
} else {
echo "Password didn't match.....";
}
}
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
mysqli_close($conn);
正如@ chris85在他的评论中指出的,ajax请求不会影响当前文档的位置。 你应该像这样做重定向:
<?php
header("Access-Control-Allow-Origin: *");
...
if (!$conn) {
die(json_encode(["status"=>"err", "msg" => "Connection failed: " . mysqli_connect_error()]));
}
...
if(password_verify ($json->password ,$row["Password"]) ){
die(json_encode(["status"=>"ok", "redirect" => "/KickStartProject/views/register.html"]));
}else{
die(json_encode(["status"=>"err", "msg" => "Password didn't match....."]));
}
...
并在你的javascript:
...
$.getJSON('/url-to-php', {...})
.success(function(response) {
if (response.status != "ok")
alert(response.msg);
else
document.location.href = response.redirect;
});
...
链接地址: http://www.djcxy.com/p/12413.html
上一篇: Can't use header
下一篇: How to do a http