Ajax requests have usually a X-Requested-With: XMLHttpRequest
request header. In JSF, you can obtain the request headers by ExternalContext#getRequestHeaderMap()
.
ExternalContext externalContext = facesContext.getExternalContext();
Map<String, String> headers = externalContext.getRequestHeaderMap();
boolean ajax = "XMLHttpRequest".equals(headers.get("X-Requested-With"));