PHP标头('Location:/ xyz /')返回HTML代码而不是重定向到'xyz /'

时间:2013-10-22 20:50:45

标签: php ajax header

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

这是我的代码:

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

在网络标签中,我看到该页面已被请求并以200 OK发送,但当前页面未重定向到新页面'/ xyz /'。

我确定它的东西很小,但有人可以帮助我。感谢

2 个答案:

答案 0 :(得分:3)

您必须检测成功的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();
}

答案 1 :(得分:2)

  • 标题是php是服务器端编码
  • ajax是javascript是客户端编码

您可以通过标题声明更改服务器代码

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

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