如何通过JavaScript访问页面的HTTP响应标头?
与此问题相关,该问题已修改为询问有关访问两个特定HTTP标头的信息。
这是一个老问题。不知道什么时候支持变得更加广泛,但getAllResponseHeaders()
并getResponseHeader()
似乎现在是相当标准:http://www.w3schools.com/xml/dom_http.asp
使用mootools,您可以使用this.xhr.getAllResponseHeaders()
如果我们谈论的是Request标头,则可以在执行XmlHttpRequests时创建自己的标头。
var request = new XMLHttpRequest();
request.setRequestHeader("X-Requested-With", "XMLHttpRequest");
request.open("GET", path, true);
request.send(null);
您无法访问http标头,但是DOM中提供了其中提供的某些信息。例如,如果要查看http引用(原文如此),请使用document.referrer。对于其他http标头,可能还有其他类似的内容。尝试谷歌搜索所需的特定内容,例如“ http Referer javascript”。
我知道这很明显,但是当我真正想要的只是引荐来源时,我一直在搜索“ http headers javascript”之类的东西,但没有得到任何有用的结果。我不知道自己怎么能做出更具体的查询。
服务人员可以访问网络信息,包括标头。好消息是它可以处理任何类型的请求,而不仅限于XMLHttpRequest。
fetch
通过respondWith
功能向服务人员提出请求。postMessage
。服务人员的理解有点复杂,因此我建立了一个小型库来完成所有这些工作。它可以在github上找到:https : //github.com/gmetais/sw-get-headers。
将标头信息发送到JavaScript的另一种方法是通过cookie。服务器可以从请求标头中提取所需的任何数据,并将其发送回Set-Cookie
响应标头中,并且可以在JavaScript中读取cookie。但是,正如keparo所说,最好只对一个或两个标头执行此操作,而不要对所有标头执行此操作。
使用XmlHttpRequest
可以拉出当前页面,然后检查响应的http标头。
最好的情况是只发出HEAD
请求,然后检查标题。
有关执行此操作的一些示例,请访问http://www.jibbering.com/2002/4/httprequest.html
只是我的2美分。
我认为问题出了错,如果您想从JQuery / JavaScript中获取Request标头,答案就是“否”。其他解决方案是创建aspx页或jsp页,那么我们可以轻松地访问请求标头。在aspx页面中接受所有请求,并放入会话/ cookie,然后可以在JavaScript页面中访问cookie。