【问题标题】:Chrome extension XHR to localhost never arrives?Chrome 扩展 XHR 到本地主机永远不会到达?
【发布时间】:2017-07-21 07:38:35
【问题描述】:

我正在尝试编写一个 chrome 扩展,这是我第一次需要使用一个 POST 到服务器。如果我在邮递员中向https://localhost:80/savelink 的本地服务器发出请求,我会得到 200,并且服务器会相应地运行。但是,当我尝试从 chrome 扩展程序触发请求时,服务器行为永远不会被触发。请求如下(仅对示例稍作修改):

chrome.tabs.query(queryInfo, function(tabs) {
        var tab = tabs[0];

        var url = tab.url;


        console.assert(typeof url == 'string', 'tab.url should be a string');
        var request = new XMLHttpRequest();

        request.open("POST", 'https://localhost:80/savelink', true);
        request.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
        request.send({ tab_url: url });
        console.log("HIT");
    });

我的 manifest.json 权限看起来像这样(你能看出我在扯头发吗?):

"permissions": [
"activeTab",
    "https://localhost/*",
    "https://*/",
    "http://*/"
  ]

我的服务器的相关部分如下所示:

app.use(function(req, res, next) {
  res.header("Access-Control-Allow-Origin", "*");
  res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
  next();
});

app.post('/savelink', function(req, res) {
    console.log(req.body);  // this log is never triggered when the route is hit through chrome
    res.sendStatus(200);
});

我正在运行设置了 --disable-web-security 标志的 Chrome Canary。我仍然在客户端收到不安全的响应,但我认为这可能无关紧要。

【问题讨论】:

  • 我查看了许多类似的问题,但无法找到解决方案:(
  • 您是否尝试查看 XMLHttpRequest 的错误信息?
  • 在扩展页面的 devtools 网络面板中看到传出请求了吗?以防万一:弹出页面和背景页面都有自己的开发工具,而不是为网页显示的工具。
  • @epascarello 这个错误只是说这是一个不安全的响应,因为我似乎无法让它实际上禁用安全
  • 可能是因为自签名证书......我认为标志是--ignore-certificate-errors

标签: javascript google-chrome-extension xmlhttprequest


【解决方案1】:

好的,我想通了,感谢评论者,你们都走在正确的道路上。我确实必须运行open -a "Google Chrome Canary" --args --user-data-dir --disable-web-security,但最重要的是,对服务器所做的任何更改都会重新启动它(我对此一无所知)。这意味着为了让我的电话正常工作,我需要导航到我的服务器上的一个路由,加载它,接受警告,然后然后打开我的扩展程序并发送我的POST。更改扩展意味着我必须这样做 + 重新加载扩展。对不起,我回复的每个人,你们都是对的,我错过了一些步骤。

【讨论】:

    猜你喜欢
    • 2023-04-11
    • 2020-04-21
    • 2011-08-07
    • 1970-01-01
    • 2020-04-12
    • 2012-11-25
    • 2012-07-02
    • 2015-02-23
    • 2020-12-07
    相关资源
    最近更新 更多