我的 Chrome 扩展中有一个内容脚本,它在某些 HTTPS 页面上运行。它试图将 POST 请求发送到 HTTP 页面(通过后台脚本),这是我设置的 API 的路由。我正在尝试发送 JSON 数据。然而,即使就绪状态为 4,我的状态仍为 0。我使用 Postman 执行相同的操作,并且成功了。这让我相信这是一个 HTTPS 协议问题,但是我在同一后台脚本中的 HTTP 页面上执行 GET,并且工作正常。那可能是什么问题呢?这是我的邮政编码:
var string = json;
xhr = new XMLHttpRequest();
xhr.open("POST", url, true);
xhr.setRequestHeader("Content-Type", "application/json");
xhr.onreadystatechange = function () {
if (xhr.readyState == 4 && xhr.status == 200) {
var json = JSON.parse(xhr.responseText);
}
};
xhr.send(string);
Run Code Online (Sandbox Code Playgroud)
谢谢!
更新:
我使用 chrome 开发人员工具调试后台脚本,发现错误,该错误是“对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。 ”。我猜后台脚本错误不会打印到主控制台。
更新:
我必须将要发布的网站添加到清单中的权限字段中。现在可以了。