在java开发中,我们往往需要统一处理异常信息,跳转到某一个错误提示页面。
然而,通过ajax调用后台时,后台抛出异常后,页面却没有跳转到异常页面,原因是后台异常时,没有正确向ajax返回信息,
这时,ajax就会走到error处理方法。
这种问题怎么解决呢,下面用代码举例:
失败时,返回页面的jsp为:/view/error/notAuthorize.jsp
ajax代码:
$.ajax({
type: "GET",
url: "${path}/off/getScheduleJson.action?random=Math.random",
data: {day:data},
dataType: "json",
success: function(data){
success();//成功时的处理方法
},
error: function(data){
error(data);//失败时的处理方法
}
});下面主要说失败时的处理方法:
function error(data){
var result = data.responseText;
if(result !=null && result !=''){//后台异常时,并在后台捕获
var url = getRootPath()+"/view/error/notAuthorize.jsp";//获取工程路径
location.href = url;
//$(document.body).html(result);
}else{//后台异常,且没有被捕获
clickautohide(5);
}
}//js获取项目根路径,如:http://localhost:8099/UniqueduHome
function getRootPath(){
//获取当前网址,如: http://localhost:8099/UniqueduHome/view/error/notAuthorize.jsp
var curWwwPath=window.document.location.href;
//获取主机地址之后的目录,如: UniqueduHome/view/error/notAuthorize.jsp
var pathName=window.document.location.pathname;
var pos=curWwwPath.indexOf(pathName);
//获取主机地址,如: http://localhost:8099
var localhostPaht=curWwwPath.substring(0,pos);
//获取带"/"的项目名,如:/UniqueduHome
var projectName=pathName.substring(0,pathName.substr(1).indexOf('/')+1);
return(localhostPaht+projectName);
}
本文详细介绍了在Java开发中遇到的Ajax调用后台时,后台抛出异常但页面未跳转至错误提示页面的情况。通过提供代码示例,解释了如何在失败时正确返回页面路径,引导用户至错误页面。同时,文章还分享了获取项目根路径的方法,确保在不同部署环境中都能正确指向错误页面。
1万+

被折叠的 条评论
为什么被折叠?



