Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 跳过ajax请求的servlet过滤器_Html_Ajax_Servlets_Servlet Filters - Fatal编程技术网

Html 跳过ajax请求的servlet过滤器

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

如何仅对Ajax请求跳过
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;)