有没有办法找出ResourceRequest
是否是AJAX请求?
我们正在使用JBoss RichFaces 3.3.3,JBoss Portlet Bridge 2.1和Java Portlet API 2.0。
答案 0 :(得分:1)
return !StringUtils.isEmpty(request.getParameter("AJAXREQUEST"));
答案 1 :(得分:0)
AJAX请求带有一个名为X-Requested-With的特殊标头,它应该等于“XMLHttpRequest”。所以跨框架的方式可能是:
public static boolean isAjaxRequest(ResourceRequest request) {
String request_header = request.getProperty("X-Requested-With");
return (request_header!=null)&&(request_header.equalsIgnoreCase("XMLHttpRequest"));
}
问题是某些Ajax请求可能没有此标头,不同的门户容器可能会以不同的方式实现它。
这是来自PortletRequest的Java文档:
的getProperty
java.lang.String getProperty(java.lang.String name)
以String形式返回指定请求属性的值。如果请求不包含指定名称的属性,则此 方法返回null。 portlet可以访问portal / portlet-container 通过此方法的特定属性以及标头(如果可用) HTTP客户端请求。