javascript - 如何从 Chrome 扩展程序发送 HTTP GET 请求?

标签 javascript google-chrome google-chrome-extension get xmlhttprequest

我正在开发一个使用 GET 方法发送 HTTP 请求的 chrome 扩展。

如何使用值为 0 的参数 parwww.example.com 发送 GET?

https://www.example.com?par=0

(服务器读取参数par并做一些事情)

我找到这篇文章,谈论Cross-Origin XMLHttpRequest ,但我不知道他们的示例对我有何帮助。

最佳答案

首先,您需要编辑manifest.json 并添加www.example.com 的权限:

  • 对于新Manifest V3 ,使用 host_permissions 字段:

    {
        "manifest_version": 3,
        ...
        "host_permissions": [
            "https://www.example.com/*"
        ],
        ...
    }
    
  • 如果您仍在使用旧的 Manifest V2,请使用 permissions 字段:

    {
        "manifest_version": 2,
        ...
        "permissions": [
            "https://www.example.com/*"
        ],
        ...
    }
    

然后在您的后台页面(或其他地方)您可以:

fetch('http://www.example.com?par=0').then(r => r.text()).then(result => {
    // Result now contains the response text, do what you want...
})

另见 MDN doc for fetch() .


使用 XMLHttpRequest (ES5) 的弃用版本:

function callback() {
    if (xhr.readyState === XMLHttpRequest.DONE) {
        if (xhr.status === 200) {
            result = xhr.responseText;
            // ...
        }
    }
};

var xhr = new XMLHttpRequest();
xhr.open("GET", "http://www.example.com?par=0", true);
xhr.onreadystatechange = callback;
xhr.send();

注意 相对 documentation page 顶部的警告:

In Manifest V3, XMLHttpRequest is not supported in background pages (provided by Service Workers). Please consider using its modern replacement, fetch()

关于javascript - 如何从 Chrome 扩展程序发送 HTTP GET 请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25107774/

相关文章:

android - 移动浏览器插件实现

javascript - Chrome 中的 CSS 和 JavaScript 幻灯片问题

google-chrome - 如何从 Google Chrome 扩展程序获取当前选项卡的 URL?

javascript - jQuery 根据表格内容隐藏行

javascript - 当我的 iframe 加载时,会出现两个滚动条,如果我将 iframe 的滚动设置为 no,它将不会显示网站的完整内容

javascript - 在 React 函数中运行 setInterval() 会发生多次,并且随着时间的推移数量会迅速增加

javascript - Window.print() 函数无法在所有浏览器中正常工作

javascript - 对象和 console.log 的奇怪行为

javascript - 循环打开多个选项卡并将不同的数据传输到每个选项卡的内容脚本

javascript - Chrome 扩展上下文菜单 : how to append div to page after clicking menu item