JQuery ajax请求一直返回Error,parsererror

项目中common.js中有一段ajax异常处理方法:

$(document).ajaxComplete(function(event,xhr,options) {
     if (xhr.statusText=="parsererror") {
         top.location.href="/admin";
     }
    });

有一个异常页面的ajax请求如下:

$.ajax({  
            type :"post",  
            url :"XXXXXXXXXXXXXXXXXXXXXXXXXXXXX",  
            timeout : 40000,  
            data: "null",  
            error : function(XMLHttpRequest, textStatus, errorThrown) {   
                       alert(XMLHttpRequest.status);  
                       alert(XMLHttpRequest.readyState);  
                       alert(textStatus);  
                       alert('读取超时,请检查网络连接');  
            },  
            dataType : "json",  
            success : function(data){  
                alert("1");  
             }  
          });  

上述的代码一直进入error,并且  

alert(textStatus);  

弹出的一直是parsererror

alert(XMLHttpRequest.status);  

弹出200正常

alert(XMLHttpRequest.readyState);  

弹出4正常

最后发现弹出parsererror的原因是类型的问题,也就是说可能是返回类型出问题了。

果然进过查找,发现在struts.xml文件中的ajax请求的action中的result返回类型不是json.而是跳转页面String类型。

记录此次异常处理,以上。