当前位置: 首页 > 面试题库 >

如何区分Ajax请求和普通的Http请求?

潘慈
2023-03-14
问题内容

我在我的应用程序中使用JSF框架。我需要在“阶段侦听器”类中的渲染响应阶段之前运行特定的脚本。

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

谁能帮我区分收到的请求吗?


问题答案:

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"));


 类似资料:
  • 问题内容: 我知道以前已经以各种形式询问过这个问题,但是我似乎无法解决这个问题。我尝试使用jQuery和本机JS API发出Ajax请求。 我的情况如下(参见附图): 浏览器发出HTTP请求 服务器响应并设置持久性Cookie 浏览器发出HTTP Ajax请求,Cookie在那里 服务器响应预期,更新Cookie 浏览器发出HTTPS Ajax请求,Cookie不再存在(?!) 由于没有Cooki

  • 问题内容: 我的网站上有一些关于HTTPS连接的页面。从这些HTTPS页面中,我必须使用HTTP Ajax请求来进行一些错误检索,例如空白字段。但是此错误消息不会出现。是否有解决方案,或者我必须提出AJAX请求以通过HTTPS连接进行归档? 问题答案: 由于同源政策,这是不可能的。 您还需要将Ajax请求切换为https。

  • 本文向大家介绍HTTP GET和POST请求的区别?相关面试题,主要包含被问及HTTP GET和POST请求的区别?时的应答技巧和注意事项,需要的朋友参考一下 参考回答: get参数通过url传递,post放在request body中。 get请求在url中传递的参数是有长度限制的,而post没有。 get比post更不安全,因为参数直接暴露在url中,所以不能用来传递敏感信息。 get请求只能

  • 问题内容: 我想使用post来更新数据库,并且不希望人们手动进行,也就是说,只能通过客户端中的AJAX来实现。在这种情况下是否有一些众所周知的加密技巧? 假设我正在发出GET请求,以将新用户插入数据库中。有人可以通过发出假请求来填充我的数据库。 问题答案: 在这种情况下,无法避免伪造的请求,因为客户端浏览器已经具有发出请求所需的一切;恶意用户只需进行一些调试即可弄清楚如何向您的后端发出任意请求,甚

  • 问题内容: 是否可以仅使用JavaScript中的XMLHTTPRequest来执行HTTP Head请求? 我的动机是节省带宽。 如果没有,是否可以伪造呢? 问题答案: 很简单,只需使用HEAD方法,而不是GET或POST: 这只是一个简短的示例,展示了如何使用HEAD方法。生产代码可能需要针对不同的结果状态(成功,失败,超时)更细粒度的回调,并可能使用不同的事件处理程序(,而不是)。

  • 本文最初发表于博客园,并在GitHub上持续更新前端的系列文章。欢迎在GitHub上关注我,一起入门和进阶前端。 以下是正文。 同步和异步 同步和异步的概念 同步:必须等待前面的任务完成,才能继续后面的任务。 异步:不受当前任务的影响。 拿排队举例: 同步:在银行排队时,只有等到你了,才能够去处理业务。 异步:在排队的时候,可以玩手机。 异步更新网站 我们在访问一个普通的网站时,当浏览器加载完HT