微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Opera 扩展中的 XMLHttpRequest 因 ERR_CONNECTION_REFUSED 而失败

如何解决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 举报,一经查实,本站将立刻删除。