AJAX请求重定向

时间:2014-04-07 13:16:35

标签: php jquery ajax redirect

我为我糟糕的英语道歉:)

我正在使用ajax请求执行php文件。 json响应的格式为。但在某些情况下可以重定向。在这种情况下,我想要重定向页面。

你能帮我吗?感谢的。

示例PHP文件:

<?php
$status = $_POST['status'];

if($status == 'a'){
    // return json response
}else{
   echo "<form action='http://www.url.com'>..</form><script type='text/javascript'>form.submit();</script>";
}
?>

示例JS文件:

$.ajax({
  type: "POST",
  url: 'http://www.my_php_file.com'
});

3 个答案:

答案 0 :(得分:0)

您可以通过返回带有3xx标头的Location响应,以通常的方式发出重定向。浏览器将遵循重定向(它不会使JavaScript代码执行ajax调用处理它)。

例如,如果您想发出301(“永久移动”):

header('Location: http://www.google.com',true,301);
exit;

(我不知道如何在PHP中发布3xx,但发现它们是in this answer)。

旁注:我怀疑www.google.com会起作用,我认为这只是一个例子。

答案 1 :(得分:0)

使用window.location = "http://www.yoururl.com";通过JS发布重定向。

答案 2 :(得分:0)

在你的php文件中用这样的javascript重定向替换php重定向:

<script type="text/javascript">
window.location.replace("http://www.google.com");
</script>