Ajax请求发布

时间:2014-04-07 14:13:34

标签: php jquery ajax

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

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

4 个答案:

答案 0 :(得分:1)

试试这个。

url: "http://www.my_php_file.com",
success: function(data) {
      document.location.href='YouNewPage.php';
}

答案 1 :(得分:1)

使用成功函数https://api.jquery.com/jQuery.ajax/

$.ajax({
  type: "POST",
  url: 'http://www.my_php_file.com'
 data: { status : statusVar },
success: function(response){
if (response.status == 'a'){
$( "#results" ).append( response);
}else{
window.location = 'http://www.url.com'
}
});
});

答案 2 :(得分:-1)

还要将您想要回显的html作为JSON返回:

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

并检查ajax响应中的redirect

$.ajax({
   type: "POST",
   dataType: "json",
   url: 'http://www.my_php_file.com',
   success: function(data) {
      if(typeof data.redirect !== "undefined") {
         $("body").append(data.redirect);
      }
   }
});

只需两个提醒,如果请求失败(没有fail回调),将不会有重定向,并且我假设您的临时JSON响应没有属性redirect

答案 3 :(得分:-1)

您需要检测响应数据是否有效JSON:

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

function checkAJAX(data)
{
    var response = $.parseJSON(data);
    if(typeof response === "object")
    {
    }
    else
    {
        // If the AJAX response is not JSON, append the HTML to the document
        $('body').append(data);
    }
}