我正在尝试编写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标志。我仍然在客户端得到一个不安全的回应,但我认为这可能无关紧要。
答案 0 :(得分:0)
好的,我想通了,谢谢评论者,你们都在正确的道路上。我必须运行open -a "Google Chrome Canary" --args --user-data-dir --disable-web-security
,但最重要的是,对服务器所做的任何更改都会重新启动它(我已经空白)。这意味着为了让我的呼叫工作,我需要导航到我的服务器上的路由,加载它,接受警告,然后然后打开我的扩展并发送我的POST
。更改扩展意味着我必须这样做+重新加载扩展。对于我回复的每个人都很抱歉,所有人都是对的,我错过了一些步骤。