PHP header('Location : /xyz/') 返回 HTML 代码,而不是重定向到 &#


PHP header('Location : /xyz/') returns HTML code instead of redirecting to 'xyz/'

我正在使用ajax将一些数据插入数据库。如果数据成功插入数据库,我想重定向到另一个页面。

这是我的代码:

if (DB::insertRegistrationUser($email, $password, $subscribe)) {
                header('Location: /xyz/');
}

在网络选项卡中,我看到该页面已请求并以 200 OK 交付,但当前页面不会重定向到新页面"/xyz/"。

确定这是一件小事,但有人可以在这里帮助我。谢谢

你必须检测一个成功的ajax完成,然后使用javascript重定向到主页上。你不能让 php 来做。使用Jquery的示例

$.post('/your/url',data,function(returned_url){
    window.location = returned_url;
});

然后在 php 中:

if (DB::insertRegistrationUser($email, $password, $subscribe)) {
    echo '/xyz/';
    die();
}
  • 标头是 PHP 是服务器端编码
  • Ajax 是 JavaScript 是客户端编码

要么通过标头语句更改服务器代码

或者你更改了你的客户端代码,在那里有一些像javascripty的东西(而不是header语句) - 例如:

window.location.href="/xyz/";