Html 跳过ajax请求的servlet过滤器
如何仅对Ajax请求跳过Html 跳过ajax请求的servlet过滤器,html,ajax,servlets,servlet-filters,Html,Ajax,Servlets,Servlet Filters,如何仅对Ajax请求跳过doFilter中的执行 现在,我正在传递名为isAjax的参数。有没有一个“标准”的方法来做到这一点 在这种情况下,如何停止过滤器中的执行?添加return语句是否合适?大多数浏览器在发送AJAX请求时都会添加一个特殊的请求头。您可以使用此代码段轻松检查: public static boolean isAjaxRequest(HttpServletRequest request) { return "XMLHttpRequest".equals(request
doFilter
中的执行
现在,我正在传递名为isAjax
的参数。有没有一个“标准”的方法来做到这一点
在这种情况下,如何停止过滤器中的执行?添加
return
语句是否合适?大多数浏览器在发送AJAX请求时都会添加一个特殊的请求头。您可以使用此代码段轻松检查:
public static boolean isAjaxRequest(HttpServletRequest request) {
return "XMLHttpRequest".equals(request.getHeader("X-Requested-With"));
}
但是,请注意,这并不是完美的保证,因为此标头以
X-
开头,它不是标准标头,浏览器/客户端代码可能会决定不发送它。您的筛选器在web.xml文件中声明,声明类似于:
<filter-mapping>
<filter-name>NonAjaxServiceFiler</filter-name>
<url-pattern>/non-ajax/*</url-pattern>
</filter-mapping>
非服务文件服务器
/非ajax/*
因此,所有与“非ajax”不匹配的查询都将被绕过这有帮助吗:?@NoobUnChained这很有帮助!!!请看这里,然后他将不得不重新编写所有Ajax URL;)