我试图创建一个与github交互的扩展。 我需要在我的代码中使用“eval”,但我一直被页面CSP阻止。 这是我的代码的简化版本:
const pageMod = require("sdk/page-mod").PageMod;
var contentScript = 'try {eval("console.log(\'hello from eval\')");} catch (e) {console.log("page mode " + e.message);}';
pageMod({
include: "*",
contentScript: contentScript ,
contentScriptWhen: "start"
});
有人可以帮我解决问题吗?
答案 0 :(得分:1)
这是因为内容安全政策:https://developer.mozilla.org/en-US/docs/Security/CSP/CSP_policy_directives
通常99%的时间,eval
的使用可以用其他东西替换。如果你给出了上下文(为什么你需要eval),我们可以尝试建议一个替代方案。
这是简单的方法。
困难的方法是截取github的响应,使用the observer notification "http-on-examine-response"删除该标题,这里有一个full example,但你可能有一个简化版本。
就个人而言,我会尽量避免使用eval,这通常更容易。