java后台如何区分请求是否为ajax异步请求

项目开发的过程中遇到一个问题, 需要Interceptor中区分当前请求是否为ajax 异步请求. 参照网上的资料, ajax 异步请求的头部信息通过F12 可以看到多了一个参数x-requested-with XMLHttpRequest,而普通的请求是没有这个.因此在后台可以如下区分一个请求是否为ajax了.

String xReq = request.getHeader("x-requested-with");
if (StringUtils.isNotBlank(xReq) && "XMLHttpRequest".equalsIgnoreCase(xReq)) {
    // 是ajax异步请求
}

在struts2 Interceptor中通过判断也是这样处理

// 需要区分请求是否为ajax请求
        ActionContext ctx = invocation.getInvocationContext();
        HttpServletRequest request = (HttpServletRequest) ctx.get(ServletActionContext.HTTP_REQUEST);
        String xReq = request.getHeader("x-requested-with");
        if (StringUtils.isNotBlank(xReq) && "XMLHttpRequest".equalsIgnoreCase(xReq)) {
            // 是ajax异步请求
            result = invocation.invoke();
            return result;
        }

你可能感兴趣的:(Java)