使用JavaScript访问网页的HTTP标头

如何通过JavaScript访问页面的HTTP响应标头?

此问题相关,该问题已修改为询问有关访问两个特定HTTP标头的信息。

相关:
如何通过JavaScript访问HTTP请求标头字段?

2020/03/30 17:11:29

我认为问题出了错,如果您想从JQuery / JavaScript中获取Request标头,答案就是“否”。其他解决方案是创建aspx页或jsp页,那么我们可以轻松地访问请求标头。在aspx页面中接受所有请求,并放入会话/ cookie,然后可以在JavaScript页面中访问cookie。

猴子村村2020/03/30 17:11:29

这是一个老问题。不知道什么时候支持变得更加广泛,但getAllResponseHeaders()getResponseHeader()似乎现在是相当标准:http://www.w3schools.com/xml/dom_http.asp

蛋蛋猿2020/03/30 17:11:29

使用mootools,您可以使用this.xhr.getAllResponseHeaders()

小小2020/03/30 17:11:29

如果我们谈论的是Request标头,则可以在执行XmlHttpRequests时创建自己的标头。

var request = new XMLHttpRequest();
request.setRequestHeader("X-Requested-With", "XMLHttpRequest");
request.open("GET", path, true);
request.send(null);
蛋蛋2020/03/30 17:11:28

您无法访问http标头,但是DOM中提供了其中提供的某些信息。例如,如果要查看http引用(原文如此),请使用document.referrer。对于其他http标头,可能还有其他类似的内容。尝试谷歌搜索所需的特定内容,例如“ http Referer javascript”。

我知道这很明显,但是当我真正想要的只是引荐来源时,我一直在搜索“ http headers javascript”之类的东西,但没有得到任何有用的结果。我不知道自己怎么能做出更具体的查询。

Itachi村村2020/03/30 17:11:28

服务人员的解决方案

服务人员可以访问网络信息,包括标头。好消息是它可以处理任何类型的请求,而不仅限于XMLHttpRequest。

怎么运行的:

  1. 在您的网站上添加服务人员。
  2. 观看正在发送的每个请求。
  3. fetch通过respondWith功能向服务人员提出请求
  4. 响应到达时,读取标题。
  5. 使用功能将标头从服务工作者发送到页面postMessage

工作示例:

服务人员的理解有点复杂,因此我建立了一个小型库来完成所有这些工作。它可以在github上找到:https : //github.com/gmetais/sw-get-headers

局限性:

  • 该网站必须使用HTTPS
  • 浏览器需要支持Service Workers API
  • 相同域/跨域策略正在执行,就像XMLHttpRequest一样
猴子2020/03/30 17:11:28

将标头信息发送到JavaScript的另一种方法是通过cookie。服务器可以从请求标头中提取所需的任何数据,并将其发送回Set-Cookie响应标头中,并且可以在JavaScript中读取cookie。但是,正如keparo所说,最好只对一个或两个标头执行此操作,而不要对所有标头执行此操作。

2020/03/30 17:11:28

使用XmlHttpRequest可以拉出当前页面,然后检查响应的http标头。

最好的情况是只发出HEAD请求,然后检查标题。

有关执行此操作的一些示例,请访问http://www.jibbering.com/2002/4/httprequest.html

只是我的2美分。