gpt4 book ai didi

javascript - 如何使用 getAllResponseHeaders 方法创建一个 JSON 对象

转载 作者:行者123 更新时间:2023-11-30 07:34:34 24 4
gpt4 key购买 nike

我目前正在编写一个 google chrome 扩展程序,我需要找出有关网站响应 header 的信息。为此,我使用了 getAllResponseHeaders 方法,但我需要将它放在一个 JSON 对象中。不幸的是,我不断收到错误消息 SyntaxError: Unexpected token D in JSON at position 0 at main

这是我目前使用的代码:

xmlhttp.open("GET", url, false);
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
allResponseHeaders = xmlhttp.getAllResponseHeaders();
}
};
xmlhttp.send();

var responseHeaders = JSON.parse(allResponseHeaders);
obj.headers = responseHeaders;

当我在 allResponseHeaders = xmlhttp.getAllResponseHeaders(); 调用后立即发出警报时,警报显示调用成功;响应 header 已全部检索。第一个响应 header 是日期,我认为这与我的错误消息的 Unexpected token D 部分有关,但我不知道为什么它无法正确解析。我该如何解决?提前致谢。

编辑:我希望我的 JSON 对象看起来像这样:

{
"headers": {
"Date": "June 20, 2016",
"Content-Type": "charset=UTF/8",
...
}
}

最佳答案

参见 https://msdn.microsoft.com/en-us/library/ms536428(v=vs.85).aspx .返回 header 是一个 crlf 分隔字符串,其中每行包含由冒号分隔的键值。您可能需要调整下面的代码以解决空白问题。

var arr = allResponseHeaders.split('\r\n');
var headers = arr.reduce(function (acc, current, i){
var parts = current.split(': ');
acc[parts[0]] = parts[1];
return acc;
}, {});

关于javascript - 如何使用 getAllResponseHeaders 方法创建一个 JSON 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37924305/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com