http请求无法使用chrome扩展

时间:2013-06-14 09:09:38

标签: google-chrome-extension httpwebrequest cross-domain

我正在开发一个需要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输出吗?

我如何实现这一目标?

0 个答案:

没有答案