【问题标题】:Spring MVC detect ajax requestSpring MVC检测ajax请求
【发布时间】:2015-08-08 07:41:45
【问题描述】:

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

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

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

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

【问题讨论】:

  • 你能否补充一下你的问题,为什么你想在高水平上做,有更多的机会得到更好的解决方案......

标签: ajax spring spring-mvc


【解决方案1】:

这是检测 Ajax 请求的唯一“通用”方法。

但请记住:这不是防故障的,它只是尽最大努力尝试,可以在不发送 X-Requested-With 标头的情况下发出 Ajax 请求

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


请注意:您的代码完全有效,尽管您可以写得更简单一些:

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

【讨论】:

    【解决方案2】:

    有一个简单的防弹解决方案。只需从您的 ajax 请求中发送 ajax=1 之类的查询参数并发送不同的值,或者不发送此参数以进行常规请求并检查您的控制器并采取相应的措施。

    【讨论】:

      猜你喜欢
      • 2011-06-25
      • 1970-01-01
      • 2016-11-28
      • 2015-04-28
      • 2014-12-31
      • 2013-07-07
      • 2014-03-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多