一个好用的打印当前 Web 应用 HTTP 请求响应头部字段的脚本

举报
汪子熙 发表于 2025/11/02 20:54:30 2025/11/02
【摘要】 直接在页面的 Chrome 开发者工具 console 面板,执行下列 JavaScript 代码:// showheaders.js// https://github.com/bgrins/devtools-snippets// Print out response headers for current URL.(function() { var request=new XMLHttp...

直接在页面的 Chrome 开发者工具 console 面板,执行下列 JavaScript 代码:

// showheaders.js
// https://github.com/bgrins/devtools-snippets
// Print out response headers for current URL.

(function() {

  var request=new XMLHttpRequest();
  request.open('HEAD',window.location,true);
  
  request.onload = request.onerror = function () {
    var headers = request.getAllResponseHeaders();
    var tab = headers.split("\n").map(function(h) {
      return { "Key": h.split(": ")[0], "Value": h.split(": ")[1] }
    }).filter(function(h) { return h.Value !== undefined; });

    console.group("Request Headers");
    console.log(headers);
    console.table(tab);
    console.groupEnd("Request Headers");
  };
  
  request.send(null);

})();

结果:

下面是代码的逐行讲解:

(function() {

这是一个立即执行函数表达式(Immediately Invoked Function Expression,IIFE),用于创建一个独立的作用域,避免变量污染全局作用域。

var request=new XMLHttpRequest();

创建了一个新的XMLHttpRequest对象,用于向服务器发送请求和接收服务器的响应。

request.open('HEAD',window.location,true);

通过调用open方法,配置了请求的类型(HEAD),请求的URL(使用window.location获取当前页面的URL),以及是否异步执行(true表示异步执行)。

request.onload = request.onerror = function () {

设置了请求的加载和错误事件的处理函数。

var headers = request.getAllResponseHeaders();

调用getAllResponseHeaders方法获取服务器返回的所有响应头信息。

var tab = headers.split("\n").map(function(h) {

将响应头信息根据换行符拆分成数组,并使用map方法对数组中的每个元素进行处理。

return { Key: h.split(": ")[0], Value: h.split(": ")[1] }

将每个响应头信息拆分成键值对的形式,存储在一个对象中,并返回该对象。

}).filter(function(h) { return h.Value !== undefined; });

使用filter方法过滤掉值为undefined的响应头信息对象,确保只保留有效的键值对。

console.group("Request Headers");

使用console.group方法创建一个折叠组,用于将相关信息组织在一起显示。

console.log(headers);

使用console.log方法输出服务器返回的所有响应头信息。

console.table(tab);

使用console.table方法以表格形式输出经处理后的响应头信息。

console.groupEnd("Request Headers");

使用console.groupEnd方法结束折叠组。

};

结束了请求加载和错误事件的处理函数。

request.send(null);

调用send方法发送请求到服务器。

})();

立即执行函数表达式的结束标志。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。