Javascript 从扩展中是否可以捕获站点';以编程方式加载页面时的CSP?

Javascript 从扩展中是否可以捕获站点';以编程方式加载页面时的CSP?,javascript,google-chrome-extension,content-security-policy,Javascript,Google Chrome Extension,Content Security Policy,我正在构建一个Chrome扩展,它改变了站点上的DOM。我想在页面加载时访问站点的内容安全策略(如果存在),以了解扩展是否可以根据CSP指令工作 目前,我能够读取站点CSP的唯一方法是为securitypolicyviolation创建一个事件侦听器,然后等待错误发生。如果抛出错误,我就可以看到指令是什么。这会导致糟糕的用户体验 我希望做的是事先访问CSP,这样就不会抛出错误。您可以考虑向页面上的某些资源或页面本身发出HEAD ajax请求。收到回复后,在标题中查找内容安全策略。嗯……好建议。让

我正在构建一个Chrome扩展,它改变了站点上的DOM。我想在页面加载时访问站点的内容安全策略(如果存在),以了解扩展是否可以根据CSP指令工作

目前,我能够读取站点CSP的唯一方法是为
securitypolicyviolation
创建一个事件侦听器,然后等待错误发生。如果抛出错误,我就可以看到指令是什么。这会导致糟糕的用户体验


我希望做的是事先访问CSP,这样就不会抛出错误。

您可以考虑向页面上的某些资源或页面本身发出HEAD ajax请求。收到回复后,在标题中查找内容安全策略。嗯……好建议。让我看看我是否能用它做点什么。CSP不仅可以通过HTTP头传递,所以别忘了检查
@granty。不幸的是,我没有成功地通过这条路线。使用
document.getElementsByTagName('meta')
返回了大量标记,但没有一个标记具有CSP的
http等效值。但在我的搜索中,我发现我的问题并不是独一无二的。我将尝试使用
XMLHttpRequest()
。看起来大家都很幸运。如果你有背景脚本或者不介意添加一个,你可以在chrome.webRequest.onHeadersReceived事件中读取CSP标题。