3

我想知道 Google Chrome 扩展程序是否可以发出 HTTP 请求并解析结果的正文(如 Curl)。例如,有一台服务器 1.2.3.4?a=1&b=2通过汇总 URL 参数来回答问题。该查询"http://1.2.3.4?a=1&b=2"将返回一个包含 的正文3,我的扩展想要提交这样的查询并解析结果。

任何帮助,将不胜感激。

4

1 回答 1

14

是的,使用跨域 XMLHttpRequest

  1. 设置权限_manifest.json

  2. 然后在您的扩展页面中像这样使用它:

    var xhr = new XMLHttpRequest();
    xhr.open("GET", "http://api.example.com/data.json", true);
    xhr.onreadystatechange = function() {
      if (xhr.readyState == 4) {
        // WARNING! Might be injecting a malicious script!
        document.getElementById("resp").innerHTML = xhr.responseText;
        ...
      }
    }
    xhr.send();
    

笔记:

  • 内容脚本无法在现代 Chrome 中发出跨域请求,更多信息
  • ManifestV3 后台脚本没有 XMLHttpRequest,因此您将在此处使用fetch
于 2012-07-16T14:45:46.057 回答