firefox-addon-webextensions - 来自内容脚本的跨域请求
问题描述
我为 Firefox 编写了一个小扩展,在其中我将内容脚本注入到一些网站中。该内容脚本应该执行 XMLHttpRequests,但是当我尝试运行我的代码时:
function call(url, data1, data2) {
var request = new XMLHttpRequest();
request.open('PUT', url, false);
request.setRequestHeader("content-type", "application/json");
request.send("{data1: " + data1 + ", data2: " + String(data2) + "}");
if (request.status === 200) {
console.log("Success");
}
}
call("https://example.com/", "DATA1", true);
我最终得到这个错误:
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://example.com/. (Reason: CORS header ‘Access-Control-Allow-Origin’ missing).
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://example.com/. (Reason: CORS request did not succeed).
Uncaught DOMException: A network error occurred.
有人知道如何解决这个问题吗?我知道,后台脚本可以使用正确的权限运行这些,但是如何在内容脚本中执行此操作?我知道,有类似的问题,但提到的所有答案都是如何在服务器端修复它。由于服务器不是我的,显然这对我来说是不可能的。
解决方案
推荐阅读
- postgresql - 无法连接到服务器:连接被拒绝 服务器是否在主机“127.0.0.1”上运行并接受端口 5432 上的 TCP/IP 连接?
- r - 2路SSL crt和httr post R中的密钥
- r - 用一列连接两列
- javascript - 如何从 yaml 获取数据到任何其他 JS 文件
- flutter - 使用不包含 Bloc 类型的上下文调用 Flutter BlocProvider.of()
- charts - Highcharts 堆叠漏斗图与水平堆叠
- unity3d - Unity:下载图像并在场景加载后保留它们(WebGL)
- c++11 - 我如何使用 preprecessor #if 将编译中的值与字符串进行比较
- javascript - 当元素对于它们的容器来说太大时,是否有一个可以检查的属性?
- javascript - 检查 HTML 元素是否具有值或特定的类名并还原