javascript - 尽管有 <all_urls> list 权限,但来自扩展程序的 Xhr 仍被阻止

标签 javascript xmlhttprequest content-security-policy firefox-addon-webextensions

正如我从 https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/permissions#Host_permissions 学到的要发出不受限制的 cors 请求,拥有主机权限就足够了,所以我的 list 如下所示:

"permissions": [
    "activeTab",
    "proxy",
    "<all_urls>"
],

我还尝试使用 list 中关于 csp 的 key :

"content_security_policy": "default-src 'self' 'unsafe-inline'; script-src 'self'; object-src 'self'"

但这并没有帮助 但是当我尝试制作 xhr 时,我仍然在控制台中看到:
内容安全策略:页面的设置阻止加载https://jsonplaceholder.typicode.com/posts/1处的资源(“default-src”)(使用上面的 csp 设置;使用默认 csp,我什至没有看到请求尝试)

document.addEventListener("click", (e) => {

function sendCredentials() {

    var payload = JSON.stringify({
        'login': document.login.value,
        'password': document.password.value
    });

    let xhr = new XMLHttpRequest();
    xhr.onreadystatechange = function () {
        if (xhr.readyState == XMLHttpRequest.DONE) {
            browser.runtime.sendMessage({
                "type": "save_token",
                "session_token": 'dummy_token'
            });
        }
    }
    xhr.open("GET", "https://jsonplaceholder.typicode.com/posts/1", true);
    xhr.send();

    if (e.target.id == 'submit') {
        sendCredentials();
    }
}

我希望在将manifest.json中的主机权限设置为之后,我将能够请求任何网址

最佳答案

我猜测代码被注入(inject)到页面中。这是正确的吗?

主机权限适用于扩展程序发出的请求。一旦您将代码注入(inject)到页面中,它就会从页面获得许可,并且 CORS 通常会被阻止。

您可以将其传递回扩展程序以发出请求,然后使用消息 API 将其传递回页面。

Firefox 似乎表示“我们正在阻止所有第三方存储访问请求,并且已启用内容阻止”。 Blocked: All third-party storage access requests

您可以尝试从后台脚本或页面执行此操作。例如,它在选项页面上工作得很好。

关于javascript - 尽管有 <all_urls> list 权限,但来自扩展程序的 Xhr 仍被阻止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57033630/

相关文章:

javascript - Handsontable - 根据单元格值自定义渲染器

javascript - 在 AngularJS 中,当表单缺少 action 属性时,有没有办法禁用默认操作的预防?

javascript - React TS 中的搜索栏未按预期工作

javascript - 为什么 Meteor 直接使用 EJSON 而不是 BSON?

XMLHTTPRequest 的 Angular 2 打字问题

javascript - 异步、回调和 OOP JavaScript : how do I organize this?

javascript - XMLHTTP Post 不起作用

http - 在单页应用程序中定义动态内容安全策略

content-security-policy - 内容安全政策-数据:image/svg+xml is ignored in img-src

javascript - Chrome 63 似乎忽略或破坏了 worker-src CSP header