1

我正在开发一个需要跨域 XHR 的 chrome 扩展。所以我需要向服务器发出获取请求并从中获取一些文本。我目前正在从我的计算机加载解压后的扩展。该脚本似乎不起作用。

这是我的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://*/"
 ]
}

这是执行获取请求的脚本(来自教程):

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 等是根据我的popup.html文件设置的,并且设置正确,它包括这个包含showresponse()函数定义的 js 文件。

myextension.crx我还尝试在阅读问题后打包我的扩展程序以获取文件,并尝试在浏览器中打开该文件,但出于安全原因,chrome 不允许从本地主机或未知服务器安装扩展程序。

我的问题是如何在 chrome 扩展中创建跨域 XHR?

此外,从 get 请求到服务器的响应实际上是一个 html 文档,我需要从返回的 html 标记中过滤一些文本。当我对 php 脚本进行查询时,如果我在 javascript 中发出 get 请求,我可以接收并因此使用 html 输出吗?

我该如何实现这一目标?

4

0 回答 0