我试图将一个标题列表从一个请求(参见https://developer.mozilla.org/en-US/docs/Web/API/Request/headers)对象转换为一个普通的键/值对象.

// Create a Request object.
const req = new Request('https://example.com', {
    headers: {
        'X-Test-header': 'Test'
    }
});

遗憾的是,以下操作不起作用,因为headers属性是iterator:

无法使用的结果:

const result1 = JSON.stringify(req.headers);
// result1 =  `{}`

可用的结果,但创建起来非常冗长:

const headers = {};
for(const [key, value] of req.headers.entries()) {
    headers[key] = value;
}
const result2 = JSON.stringify(headers)
// result2 = `{'X-Test-Header': 'Test'}`

我正在寻找某种类型的一行(可能包括Array.from()some of the other methods on the Request.headers object,如.keys()/.values()),以便我能够将结果字符串化.

推荐答案

您可以使用Object.fromEntries()方法,然后将该对象字符串化,如下所示..fromEntries()方法将调用headers对象(即.entries())的迭代器来获取header对象的条目,然后使用该条目创建对象.然后,您可以将其传递给JSON.stringify()以获取JSON字符串:

const req = new Request('https://example.com', {
    headers: {
        'X-Test-header': 'Test'
    }
});

const result1 = JSON.stringify(Object.fromEntries(req.headers));
console.log(result1);

Javascript相关问答推荐

Toast函数找不到其dis

在shiny 模块中实现JavaScript

使用useParams路由失败

Flisk和JS错误:未捕获的Syntax错误:意外的令牌'<'

从实时数据库(Firebase)上的子类别读取数据

传递一个大对象以在Express布局中呈现

Phaser 3 console. log()特定游戏角色的瓷砖属性

在观察框架中搜索CSV数据

如何从html元素创建树 struct ?

显示图—如何在图例项上添加删除线效果?

在open shadow—root中匹配时,使用jQuery删除一个封闭的div类

是什么导致了这种奇怪的水平间距错误(?)当通过JavaScript将列表项元素追加到无序列表时,是否在按钮之间?

React.Development.js和未捕获的ReferenceError:未定义useState

使用getBorbingClientRect()更改绝对元素位置

在Reaction中的handleSubmit按钮内,useSelector值仍然为空

在开发期间,Web浏览器如何运行&qot;.jsx&qot;文件?

在SHINY R中的嵌套模块中,不能使用Java代码

我想使用GAS和HTML将从Electron 表格中获得的信息插入到文本字段的初始值中

用于测试其方法和构造函数的导出/导入类

如何让SVG图标在被点击和访问后改变 colored颜色 ,并在被访问后取消点击时恢复到原来的 colored颜色 ?