首页 > 解决方案 > 来自内容脚本的跨域请求

问题描述

我为 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.

有人知道如何解决这个问题吗?我知道,后台脚本可以使用正确的权限运行这些,但是如何在内容脚本中执行此操作?我知道,有类似的问题,但提到的所有答案都是如何在服务器端修复它。由于服务器不是我的,显然这对我来说是不可能的。

标签: firefox-addon-webextensions

解决方案


推荐阅读