谷歌浏览器扩展程序Http请求

3
我想知道Google Chrome扩展程序是否可以发出HTTP请求并解析结果的主体(类似于Curl)。例如,有一个服务器1.2.3.4通过总结URL参数来回答问题?a=1&b=2。查询"http://1.2.3.4?a=1&b=2"将返回一个包含3的主体,我的扩展程序希望提交这样一个查询并解析结果。如果您能提供任何帮助,将不胜感激。

这是一个与 https://dev59.com/TmTWa4cB1Zd3GeqPB0pW 完全相同的问题,但那个版本上的答案都不太理想。其中一个答案根本没有回答问题,另一个则使用了不适当的 jQuery 语法。 - apsillers
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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接