有人知道我为什么一直收到这个消息吗?拒绝运行JavaScript URL,因为它违反了以下内容安全策略指令:“default src‘self’”。启用内联执行需要'unsafe inline'关键字、哈希('sha256-…')或nonce('nonce-…')。还请注意,没有显式设置“script src”,因此使用“default src”作为回退。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width">
<title>Title</title>
<script type="text/javascript">
function checkoutForm() {
var inputValue = document.querySelectorAll('.form-control')[0].value;
alert('Your input value: ' + inputValue);
window.open('/search/' + inputValue);
}
</script>
</head>
<body>
<form class="navbar-search navbar-search-dark form-inline mr-3 d-none d-md-flex ml-lg-auto" method="get"
action="javascript:checkoutForm()">
<div class="form-group mb-0">
<div class="input-group input-group-alternative">
<div class="input-group-prepend">
<span class="input-group-text"><i class="fas fa-search"></i></span>
</div>
<input class="form-control" placeholder="Search" type="search" value>
</div>
</div>
</form>
</body>
</html>
好吧,现在看来直接从html调用javascript代码对谷歌来说是不合适的:
https://developers.google.com/web/fundamentals/security/csp?hl=en#the_meta_tag
因此,您可以执行以下操作:
>
放置内联脚本(
在该文件中添加以下内容:
document.addEventListener('DOMContentLoaded', function () {
document.querySelectorAll('.fa-search')[0].addEventListener('click', checkoutForm);
});
我建议您添加一个id标记,或添加一个触发搜索的新按钮,并将document.queryselector行替换为:
document.getElementById('buttonId').addEventListener('click', checkoutForm);
当然,您可以使用JQuery或任何其他框架来实现同样的行为。
其他内容类似的StackOverflow问题:
拒绝加载脚本,因为它违反了以下内容安全策略指令
在上面的链接中,你有另一种方法来解决这个问题,但既然谷歌警告说没关系,我会尽量避免。与您在此处解释的解决方案相同:https://developers.google.com/web/fundamentals/security/csp?hl=en#if_you_absolutely_must_use_it_
拒绝执行内联事件处理程序,因为它违反CSP。(沙箱)
请删除下面的行
javascript:void(0)
Form的action
属性只能包含URI。参考https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form#Attributes
表单的action
属性包含JavaScript代码。
从您的代码中,我看到您正试图使用JS将搜索关键字附加到URL中。这不是必需的。由于表单的method
属性是get
,因此在表单提交期间,搜索关键字将自动附加到URL中。
将action
属性设置为/search
,这将解决您的问题
我得到了这个错误: 尝试加载mapboxGL地图时。这是我的CSP标签:
问题内容: 当我尝试将我的应用程序部署到5.0.0以上的android系统的设备上时,我一直收到以下错误消息: 07-03 18:39:21.621:D / SystemWebChromeClient(9132):file:///android_asset/www/index.html:第0行:拒绝加载脚本“ http:// xxxxx ”,因为它违反了以下内容安全策略指令:“ script-sr
当我尝试将我的应用程序部署到Android系统高于5.0.0(Lollipop)的设备上时,我不断收到以下错误消息: 07-03 18:39:21.621:D/SystemWebChromeClient(9132):file:///android_asset/www/index.html: 第0行:拒绝加载脚本的http://xxxxx'因为它违反了以下内容安全策略指令:“script src's
因此,在大约1小时内,我的扩展失败了。 我在做我的扩展,它在做我假装的事情。我做了一些更改,由于不喜欢,我删除了它们,现在我的扩展抛出错误: 拒绝应用内联样式,因为它违反了以下内容安全策略指令:“default src‘self’”。请注意,没有显式设置“style src”,因此使用“default src”作为回退。 是什么导致了这个错误? 我在以下方面进行了更改: popup.html po
我尝试通过cryptojs库加密用户数据,并通过ajax发送到服务器,但控制台显示错误: 拒绝加载脚本'https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.0.0/crypto-js.min.js',因为它违反了以下内容安全策略指令:脚本-src'自我'https://apis.google.com'不安全评估'。请注意,没有显式设置脚本-src-
我们开始吧:我是谷歌chrome扩展开发的新手,所以请容忍我。 我有一个分机,它给了我以下错误: 拒绝框架'https://api.xxx.jp/',因为它违反了以下内容安全策略指令:"frame-src'自己'https://staticxx.facebook.comhttps://twitter.comhttps://*.twimg.comhttps://5415703.fls.doublec