访问Chrome扩展中的XML响应



我正在开发一个非常简单的Chrome扩展,在尝试发出XML请求以访问当前选项卡上的数据时遇到了问题。

按原样,当单击扩展图标时,我可以获得访问选项卡数据的扩展,包括URL。当它这样做时,它将运行background.js脚本。但我只能发送请求,永远无法访问响应。我已经尽我所能地尝试了,但是检查.readyState属性告诉请求没有完成。有什么想法吗?

现在,我只是试图输出到控制台,以表明我正在以一种可以使用的形式获取数据,我稍后会充实我将如何使用它。

以下扩展文件:

manifest.json

{"manifest_version": 2,
"name": "ThisIsATest",
"version": "0.1",
"permissions" : [
"activeTab"
],
"background" : {
"scripts" : ["background.js"],
"persistent" : false
},
"browser_action" : {
"default_title" : "Log Page Source Code"
}
}

background.js

chrome.browserAction.onClicked.addListener(function(tab) {
console.log('Getting URL: ' + tab.url);
var xreq = new XMLHttpRequest();
console.log(xreq.readyState);
xreq.open('GET', tab.url);
console.log(xreq.readyState);
xreq.responseType = "text";
xreq.send();
console.log(xreq.response);
});

您必须等待响应,因为它可能需要一段时间:

xreq = new XMLHttpRequest();
xreq.open('GET', tab.url);
xreq.onload = function () {
console.log(xreq.response);
}
xreq.send();

您也可以只使用fetch:https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch因为这样容易多了。

最新更新