如何解决在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,因为它更容易。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。