Opera 扩展中的 XMLHttpRequest 因 ERR_CONNECTION_REFUSED 而失败

问题描述

我有一个很小的扩展程序,可以将当前活动的浏览器选项卡报告给本地运行的 Mac 时间跟踪器。它对 Firefox 和 Opera 使用相同的代码,但最近它在 Opera 中停止工作。似乎无法再发送 XMLHttpRequest 并且我收到了 net::ERR_CONNECTION_REFUSED,但我找不到 Chromium 中最近是否发生了任何变化。

清单中是否缺少任何权限?

script.js

function checkUrl() {
    chrome.tabs.query({ active: true,lastFocusedWindow: true },function(tabs) {
        if (tabs.length > 0) {
            var tabUrl = tabs[0].url;
            var tabName = tabs[0].title;
            var isIncognito = tabs[0].incognito;
            console.log(tabUrl + " " + tabName + " " + isIncognito);
            var requestUrl = "http://localhost:27272/?url=" + encodeURIComponent(tabUrl) + "&title=" + encodeURIComponent(tabName) + "&private=" + isIncognito;

            var xmlHttp = new XMLHttpRequest();
            xmlHttp.open("POST",requestUrl,true);
            xmlHttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
            xmlHttp.send(null); // results in net::ERR_CONNECTION_REFUSED
        }
    });
}

chrome.tabs.onActivated.addListener(function(info) {
    checkUrl();
});

chrome.tabs.onUpdated.addListener(function(tabId,changeInfo,tab) {
    checkUrl();
});

chrome.windows.onFocusChanged.addListener(function(windowId) {
    checkUrl();
});

manifest.json

{
    "name": "…","manifest_version": 2,"permissions": [
        "tabs","http://localhost:27272/*"
    ],"background": {
        "scripts": ["script.js"]
    }
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)