`

判断是否是ajax请求,区分返回页面值

    博客分类:
  • ajax
阅读更多
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); 
分享到:
评论

相关推荐

    Shiro权限控制-区分Ajax请求

    - **如何区分Ajax请求**:可以通过检查HTTP请求头部中的`X-Requested-With`字段来判断一个请求是否为Ajax请求。当该字段存在且值为`XMLHttpRequest`时,可以认为这是一个Ajax请求。 - **如何处理Ajax请求**:我们...

    判断请求头中是否含有某属性来判断是否是ajax请求

    此外,开发者也可以在自定义的Ajax请求中设置其他值,或者完全不使用`X-Requested-With`头部信息,因此依赖这个头部属性来判断是否是Ajax请求并不是绝对可靠的。 如果要检查请求头中是否有某个特定属性,我们可以在...

    php判断是否为ajax请求的方法

    总结一下,PHP中判断Ajax请求的关键在于检查`$_SERVER["HTTP_X_REQUESTED_WITH"]`变量,而这个变量通常是前端通过设置`X-Requested-With`头信息来传递的。通过这种方式,前端和后端可以协同工作,提供流畅的异步体验...

    在php中判断一个请求是ajax请求还是普通请求的方法

    例如,对于AJAX请求,可以返回简化的、仅包含核心数据的响应,而对于普通请求,返回的是包含整个页面结构的完整HTML。 然而,这种方法也有其限制。如果jQuery的AJAX请求是通过`iframe`加载的,`...

    Java后台判断ajax请求及处理过程详解

    为了解决这个问题,我们需要在过滤器或拦截器中区分普通页面请求和AJAX请求,并分别处理。对于AJAX请求,不进行页面重定向,而是通过HTTP响应返回特定的状态或信息,让前端根据这个信息做出相应的处理,如提示用户...

    php中如何判断一个网页请求是ajax请求还是普通请求

    使用AJAX请求可以提高用户体验,因为它允许页面的部分内容异步加载,而无需刷新整个页面。同时,对于搜索引擎来说,提供完整的内容可以保证网页被正确索引和排名。 通过理解这些概念,并在实践中灵活运用,你可以...

    ajax请求json数据案例详解

    本案例详解的核心在于实现一个页面交互功能:当用户点击页面上代表六大洲的元素时,页面将发起一个AJAX请求以获取对应大洲的数据并展示。该功能需要满足两个条件,一是确保相同请求只发起一次,二是第二次点击时不...

    PHP中如何判断AJAX提交的数据

    但在实际应用中,这个方法足够可靠,因为通常情况下只有AJAX请求会设置这个值。 接下来,我们将探讨一些与PHP和AJAX相关的实践技术: 1. **PHP+AJAX实现无刷新动态加载数据**:这种技术常用于分页或者无限滚动场景...

    异步请求时判断远程服务中断和本地服务器中断

    - **错误处理函数**:为Ajax请求配置错误处理函数,对各种异常情况进行统一处理,如显示错误信息、切换到离线模式或提示用户检查网络连接。 - **超时设置**:根据服务器响应时间设定合理的超时时间,避免因长时间...

    Ajax异步无刷新验证码

    服务器比较接收到的验证码与保存在session中的验证码是否一致,以判断验证是否成功。 通过Ajax异步无刷新验证码,不仅可以提升用户体验,减少页面刷新带来的延迟,还可以提高网站的安全性,有效防止自动化攻击。...

    ajax判断后端返回的数据是否为null的方法

    以下是一个基本的Ajax请求示例,展示了如何在success回调函数中判断返回的JSON数据是否为null: ```javascript $.ajax({ type: "POST", // 请求类型,这里是POST data: { name: name, // 要传递的参数 code: ...

    Ajax Session失效跳转登录页面的方法

    在拦截器内部,首先获取请求和响应对象,然后通过请求头中的“X-Requested-With”属性判断是否是AJAX请求。如果是AJAX请求,将通过设置响应头来告知客户端Session已失效,并返回null作为结果,这样客户端的Ajax调用...

    使用ajax实现无刷新改变页面内容和地址栏URL

    这样,后端就可以识别出这类特殊的Ajax请求,并返回不包含页面头部和尾部的HTML内容,只返回页面的主体部分。 例如,对于PHP后端,可以这样判断: ```php if (array_key_exists('HTTP_X_PJAX', $_SERVER) && $_...

    基于J2EE的Ajax宝典

    ### 基于J2EE的Ajax宝典 #### 一、引言 《基于J2EE的Ajax宝典》是一本深入介绍Ajax技术在Java 2 Enterprise Edition(J2EE)平台上的应用指南。该书不仅覆盖了Ajax的基础概念和技术细节,还详细介绍了如何在J2EE...

    PHP简单获取及判断提交来源的方法

    例如,在处理表单提交时,我们可能需要判断请求方式(GET、POST)以及是否是AJAX请求。可以使用以下方法: - 判断GET参数是否存在: ```php if (!empty($_GET)) { // 有GET参数 } else { // 没有GET参数 } ``` - ...

    使用Ajax实现简单的带百分比进度条实例

    可以通过定时器每隔一定时间(如每秒)向服务器发送Ajax请求,询问任务的最新进度,并根据返回的数据更新进度条的视觉显示。 具体步骤包括: 1. 创建Ajax引擎。这段代码根据浏览器的不同,使用原生JavaScript创建`...

    php判断页面是否是微信打开的示例(微信打开网页)

    通过AJAX请求,可以在服务器端进行更复杂的判断和处理,然后返回特定的指示。在返回的内容中,可以加上一些加载中的提示,比如“玩命加载中”,以此给用户一个明确的反馈,同时也可以防止因客户端欺骗而带来的一些...

    ajax浏览器兼容的问题探讨

    3. readyState和status属性的值可能在不同浏览器中有所不同,这影响了判断AJAX请求是否成功的逻辑。 示例代码展示了一个兼容性处理的AJAX实现。在这段代码中,首先通过判断window对象是否包含XMLHttpRequest属性来...

    为响应客户端回发而加载该页

    这个属性是一个布尔值,用于判断当前页面的加载是否由客户端回发事件触发。如果用户没有进行任何交互,而是首次访问页面,Page.IsPostBack将返回false。相反,如果页面是由于用户交互(如按钮点击)导致的重新加载,...

    使用struts2+Ajax+jquery验证用户名是否已被注册

    - Ajax请求返回的数据被处理为简化的形式(此处为"1"或"0"),从而便于前端进行判断和响应。 4. jQuery库使用: - jQuery是一个快速、简洁的JavaScript库,它简化了HTML文档遍历和操作、事件处理、动画和Ajax交互...

Global site tag (gtag.js) - Google Analytics