无法使用标题

我试图让我的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