function queryWorkDay(){
  //alert("查询工作日");
  var year = document.getElementById("year").value;
   var month = document.getElementById("month").value;
   var url = "<%=rootPath%>/GetWorkDay.do?id=<%=request.getAttribute("id")%>"  + "&&year=" + year+"&&month=" + month;
  //alert(url);
   var xmlhttp = getXMLHttpRequest();
    xmlhttp.open("get",url,true);
   xmlhttp.onreadystatechange = getWrokDay;
   xmlhttp.send(null);
 }
我在前台写了个ajax的异步传输,后台做处理。
现在的情况是当在后台处理时,产生异常的话,截取异常,然后跳转到异常页面去,
但是,我的程序能够截取到一场,也能读到异常页面,但是又要跳转回当前页面来了,而且回调函数里的responseText李包含了这个异常页面,我知道这是Ajax的流程,也明白是什么原因。现在就是想有没有什么方法,当产生异常的时候,直接跳转到异常页面去,不用再返回当前页面。各位高手帮帮忙啊!!

解决方案 »

  1.   

    不太明白什么意思
    直接history.back();不能满足你的需求吗
      

  2.   

    就是说在后台出现异常了,就在后台直接跳转到异常页面,
    就是
    能 return mapping.findforward("error");
      

  3.   

    可能的原因:
    1、后台处置不当,返回的字串包含了其他不应该返回的HTML代码;
    2、处置异常、跳转到异常页面的方式是不是有问题?
    3、一次发送AJAX请求,但同时发生了连续2次或以上的AJAX
      

  4.   

    不知道的代码可以这么考虑吗?
    直接把异常返回到当前页面再进行转errr.html
      

  5.   

    你只能在你的 回调函数 里判断 然后 使用 window.location.href='error.jsp' 进行跳转
      

  6.   

    在异常的地方直接window.location = "异常.html"
      

  7.   

    哦,你在是后台发现了异常,直接跳转的吧;
    一个办法是把后台的那个页面内容合并到当前页来;这样就没问题了;
    另外一个就是大家都说的,AJAX的回调函数里用location跳转
      

  8.   

    用include 把两个页面合并? 这个异常页面里还要做处理,
    比如:request.getAtrribute();
    能正常得值吗
      

  9.   

    不是用include ,是把后台的处理AJAX的代码转移到当前页面
    你可以到这里17楼看看怎么合并:http://topic.csdn.net/u/20100512/10/82c7e089-b7d4-4752-8554-d201828fe34d.html