【问题标题】:AJAX request redirectionAJAX 请求重定向
【发布时间】:2014-05-19 18:23:39
【问题描述】:

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

我正在使用 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'
});

【问题讨论】:

  • 响应类型如何既可以是 json 也可以是 HTML?

标签: php jquery ajax redirect


【解决方案1】:

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

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

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

(我不知道如何在PHP中发出3xx的具体细节,但找到了in this answer)。

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

【讨论】:

  • @muratsac:坦率地说,你已经把它变成了一个不同的问题。
【解决方案2】:

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

【讨论】:

    【解决方案3】:

    在您的 php 文件中,将 php 重定向替换为 javascript 重定向,如下所示:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-10-19
      • 2014-07-11
      • 1970-01-01
      • 1970-01-01
      • 2012-12-13
      • 2014-08-22
      • 2012-02-28
      相关资源
      最近更新 更多