boolean isAjax = "XMLHttpRequest".equals(req.getHeader("X-Requested-With"));
//如果是ajax请求
if (isAjax) {
String jsonObject = "{\"message\":\"You are not privileged to request this resource.\",\"access-denied\":true,\"cause\":\"AUTHORIZATION_FAILURE\"}";
String contentType = "application/json";
resp.setContentType(contentType);
PrintWriter out = resp.getWriter();
out.print(jsonObject);
out.flush();
out.close();
return;
}
else
{
String path = req.getContextPath();
String basePath = req.getScheme()+"://"+req.getServerName()+":"+req.getServerPort()+path+"/";
resp.sendRedirect(basePath+accessDeniedUrl);
}
//全局设置 jquery_ajax事件
(function($){
// 保存原有的jquery ajax;
var $_ajax = $.ajax;
$.ajax = function(options){
var originalSuccess,
mySuccess,
success_context;
if (options.success) {
// save reference to original success callback
originalSuccess = options.success;
success_context = options.context ? options.context : $;
// 自定义callback
mySuccess = function(data) {
if (data['access-denied']) {
if (data.cause==='AUTHENTICATION_FAILURE') {
alert('登录超时,请重新登录.');
window.location.href = contextPath + '/';
} else if (data.cause==='AUTHORIZATION_FAILURE') {
if (data=="noright")
{
alert('对不起,你没有访问该资源的权限.');
}
}
return;
// call original success callback
originalSuccess.apply(success_context, arguments);
};
// override success callback with custom implementation
options.success = mySuccess;
}
// call original ajax function with modified arguments
$_ajax.apply($, arguments);
};
})(jQuery);
分享到:
相关推荐
ajax重写方法搭配后台filter返回status实现ajax请求跳转登录页面
jquery中ajax方法有个属性async用于控制同步和异步,默认是true,即ajax请求默认是异步请求,有时项目中会用到AJAX同步。这个同步的意思是当JS代码加载到当前AJAX的时候会把页面里所有的代码停止加载,页面出现
今天小编就为大家分享一篇jQuery中ajax请求后台返回json数据并渲染HTML的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
在服务器端判断request来自Ajax请求(异步)还是传统请求(同步)
Servlet中Filter判断是否是ajax请求源码
自己在struts2中的写好了业务逻辑用response返回的内容却是一个页面的! 然后就去了百度一下,说的是将struts2的返回值设为null(return null),这是因为struts2返回的是一个页面。如果在action中只进行业务逻辑不...
Android Webview虽然提供了页面加载及资源请求的钩子,但是对于h5的ajax请求并没有提供干涉的接口,这意味着我们不能在webview中干涉javascript发起的http请求,而有时候我们确实需要能够截获ajax请求并实现一些功能...
本文实例分析了ajax请求之返回数据的顺序问题。分享给大家供大家参考,具体如下: ajax请求一个url,php后端处理后,数组为如下格式: 代码如下:$a = array( ‘-1’=> 10 ,’-3′ => 2, ‘0’ => ‘5’ ,’-2′ => ...
Ajax请求接口,Django框架下从该接口接收Ajax发送的json数据,同时将新的json数据返回给Ajax,Ajax收到后在js进行处理,然后和页面内容交互。整个数据前后端交互全部采用json格式。代码高度封装,只需要更改json内容...
chrome扩展插件获取ajax请求记录
在进行Ajax调用过程中一般都具有这样的做法:显示一个GIF图片动画表明后台正在工作,同时阻止用户操作本页面(比如Ajax请求通过某个按钮触发,用户不能频繁点击该按钮产生多个并发Ajax请求);调用完成后,图片消失...
springmvc接收ajax请求注意事项
AJAx发送请求,获取返回值,判断处理返回结果
Js 拦截全局ajax请求
简单页面访问后台接口的一个样例,用于调试后台接口是否支持跨域,是否支持ajax请求,是否又正确的值返回前端,在postman正确的情况下浏览器不一定能成功,此时就需要用ajax模拟调用检查
如何在Thymeleaf中实现ajax请求url的可靠构造
NULL 博文链接:https://yuhuiblog695685688425687986842568269.iteye.com/blog/2406657
今天在使用 ajax 向后台请求数据时出现错误,提示状态码为 0 ,后台采用的是 spring mvc 架构。 状态码为0是什么意思呢?查找了下,原来它意味着 (未初始化)即没有调用到send()方法,我原来代码如下 : $.ajax...
Shiro对权限的处理,并没有区分是否是Ajax请求,需要我们自己...在实现时通过获取请求头X-Request-with是否有值来区分,区分开来以后,对于普通请求直接跳转到没有权限的页面,对于AJax请求返回一个没有权限的JSon数据