java 拦截ajax请求_springmvc拦截器拦截ajax请求

使用springmvc 拦截请求时,需要实现 spring中的HandlerInterceptor这个接口。拦截普通的请求,不需要特殊的处理,但是拦截ajax请求时,则需要处理,

1、首先写一个js,用与复写ajax请求,如果是ajax请求,给其加一个标志,标注释ajax请求

$(function() {

overrideJQeuryAjax();

});

function overrideJQeuryAjax() {

var oriAjax = jQuery.ajax;

// Override jquery ajax to check if session is valid.

jQuery.ajax = function(options) {

if (!options.data) {

options.data = "";

}

if (typeof options.data == "string") {

options.data = options.data + "&_isAjax=true";

} else {

options.data._isAjax = true;

}

var oriSuccess = options.success;

if (typeof oriSuccess == 'function') {

options.success = function(result) {

if (!checkSession(result)) {

return false;

}

oriSuccess(result);

}

}

var oriError = options.error;

if (typeof oriError == 'function') {

options.error = function(result) {

if (!checkSession(result)) {

return false;

}

window.location = 'error.do';

}

}

oriAjax(options);

};

}

function checkSession(result) {

if (typeof result.checkUserAjaxMsg == 'boolean' && !result.checkUserAjaxMsg) {

window.location = 'loginUI.do';

return false;

}

return true;

}

2、登录时,验证如果没有用户登录,则看看是不是ajax请求,如果是,上一步的js,会做处理,如果不是,则按照普通的请求处理即可

public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)

throws Exception {

Tourist tourist = (Tourist) request.getSession().getAttribute(Constance.Session.SESSION_TOURIST);

if (tourist != null) { //用户不为空,判断是否有权限

return true;

}else{

//拦截处理 ajax 请求

String isAjax = request.getParameter("_isAjax");

if (Boolean.parseBoolean(isAjax)) {

String message = "{\"checkUserAjaxMsg\":false}";

response.setContentType("application/json;charset=UTF-8");

response.getOutputStream().write(message.getBytes());

}else{

//用户为空,直接返回登录页面

response.sendRedirect("loginUI.do");

}

return false;

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值