我正在开发一个需要corss域XHR的chrome扩展。所以我需要向服务器发出get请求并从中获取一些文本。我目前正在从计算机上加载解压缩的扩展程序。该脚本似乎不起作用。
这是我的manifest.json
:
{
"name": "My extension",
"version": "1.1",
"manifest_version": 2,
"description": "Testing http requests",
"browser_action": {
"default_icon": "icon.png",
"default_popup": "popup.html"
},
"permissions": [
"http://*/"
]
}
以下是执行get请求的脚本(来自this教程):
function showresponse(){
var query = document.getElementById("query").value;
var url = "http://blah.com/search.php?term="+query;
var xhr = new XMLHttpRequest();
xhr.open("GET", url, true);
xhr.onreadystatechange = function() {
if (xhr.readyState == 4) {
console.log("hello world");
document.getElementById("container").innerHTML = xhr.responseText;
}
}
xhr.send(null);
}
id's etc是根据我的popup.html
文件设置的,并且设置正确,它包含这个包含showresponse()
函数定义的js文件。
我还尝试打包我的扩展程序以在阅读this问题后获取myextension.crx
文件,并尝试在浏览器中打开该文件,但chrome不允许从localhost或未知服务器安装扩展程序出于安全考虑,我想。
我的问题是如何在Chrome扩展程序中创建跨域XHR?
此外,get请求对服务器的响应实际上是一个html文档,我需要从返回的html标签中过滤掉一些文本。当我正在查询php脚本时,如果我在javascript中发出get请求,我可以接收并因此使用html输出吗?
我如何实现这一目标?