Javascript 在jQuery Ajax调用完成时控制请求

Javascript 在jQuery Ajax调用完成时控制请求,javascript,jquery,ajax,xmlhttprequest,Javascript,Jquery,Ajax,Xmlhttprequest,我正在使用$.post()使用Ajax调用服务器,然后使用JTemplate将数据写入当前页面。但是,如果会话超时,服务器将发送重定向指令,将用户发送到登录页面。在这种情况下,jQuery正在用登录页面的内容替换div元素,迫使用户亲眼目睹一个罕见的场景 如何使用jquery1.9管理来自Ajax调用的重定向指令?您必须使用json数据响应客户端。 例如: 在PHP文件中 <?php //for example, data you want to response to client is

我正在使用
$.post()
使用Ajax调用服务器,然后使用
JTemplate
将数据写入当前页面。但是,如果会话超时,服务器将发送重定向指令,将用户发送到登录页面。在这种情况下,
jQuery
正在用登录页面的内容替换
div
元素,迫使用户亲眼目睹一个罕见的场景


如何使用
jquery1.9
管理来自
Ajax
调用的重定向指令?

您必须使用json数据响应客户端。 例如: 在PHP文件中

<?php
//for example, data you want to response to client is a html string
$data = '<table></table>';
if($is_timeout && $is_ajax_request) {
   //shouldn't redirect, should return json_encode
   echo json_encode(array('timeout'=>1));
   die();
}else{
   echo json_encode(array('data'=>$data));
   die();
}

您是否尝试在$.post()设置的“error”块中捕获该异常?
$.post('your_url_to_php_file',{data:data_to_post}, function(resp){
   var data = jQuery.parseJSON(resp);
   if(data.timeout) {
      alert("timeout");
      return;
   }else{
      $("#your_div").html(data.data);
   }
})