Spring MVC检测ajax请求

Fer*_*mes 4 ajax spring spring-mvc

如何以最佳方式检测ajax请求?

我目前在我的控制器中使用它:

private boolean isAjax(HttpServletRequest request){
    String header = request.getHeader("x-requested-with");
    if(header != null && header.equals("XMLHttpRequest"))
        return true;
    else
        return false;
}
Run Code Online (Sandbox Code Playgroud)

但我不喜欢这种方式,我认为Spring应该有更好的解决方案.

acd*_*ior 13

这是检测Ajax请求的唯一"通用"方式.

但请记住:这不是故障保护,它只是一种尽力而为的尝试,可以在不发送X-Requested-With标头的情况下发出Ajax请求.

jQuery通常包含该标头.也许另一个lib没有.该协议当然不会认为该标头是强制性的.


请注意:您的代码完全有效,但您可以更简单地编写代码:

private boolean isAjax(HttpServletRequest request) {
    String requestedWithHeader = request.getHeader("X-Requested-With");
    return "XMLHttpRequest".equals(requestedWithHeader);
}
Run Code Online (Sandbox Code Playgroud)