如何区分Ajax请求和正常的Http请求?

R K*_*R K 10 javascript java ajax jsf

我在我的应用程序中使用JSF框架.我需要在Phase Listener类的渲染响应阶段之前运行特定的脚本.

运行此脚本的条件是,如果触发的请求是Ajax请求,则需要运行脚本,如果触发的请求是Http请求,则不应运行该脚本.

谁能帮助我区分收到的请求.

Bal*_*usC 18

Ajax请求通常有一个X-Requested-With: XMLHttpRequest请求标头.在JSF中,您可以通过获取请求标头ExternalContext#getRequestHeaderMap().

ExternalContext externalContext = facesContext.getExternalContext();
Map<String, String> headers = externalContext.getRequestHeaderMap();
boolean ajax = "XMLHttpRequest".equals(headers.get("X-Requested-With"));
Run Code Online (Sandbox Code Playgroud)