Chrome扩展XHR到localhost永远不会到来?

时间:2017-07-18 18:41:05

标签: javascript google-chrome-extension xmlhttprequest

我正在尝试编写chrome扩展,这是我第一次需要使用一个来POST到服务器。如果我在Postman中将请求发送到<script> <template> <div> </div> </template> export default { name: 'ChildComponent', mounted() { console.log(this.props) } } </script> 的本地服务器,则会得到200,服务器会相应地运行。但是,当我尝试从chrome扩展程序触发请求时,永远不会触发服务器行为。请求如下(仅从示例中略微修改):

https://localhost:80/savelink

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

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");
    });

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

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

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

1 个答案:

答案 0 :(得分:0)

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