修改
我已经尝试过以下建议但他们仍然无法工作。我得到的错误是:
“拒绝执行内联脚本,因为它违反了以下内容安全策略指令:”default-src'self'数据:gap:https://ssl.gstatic.com'unsafe-eval'“。'unsafe-inline'关键字,哈希('sha256-egiF + Vb0Vz6d / Eu2SO2D + 0PSd3mbX / UWP8Bx7aqvuZQ =')或nonce('nonce -...')是启用内联执行所必需的。另请注意'script-src'未明确表示设置,所以'default-src'用作后备。“
任何人都可以阐明这个含义吗?
我确信有一个简单的答案,如果有人能告诉我我做错了什么,我会非常感激。我试图在空白页面中调用基本日历。然而,什么也没发生。我已经验证了我知道要做的所有事情,但仍然没有出现。
<!DOCTYPE html>
<html>
<head>
<!--
Customize this policy to fit your own app's needs. For more guidance, see:
https://github.com/apache/cordova-plugin-whitelist/blob/master/README.md#content-security-policy
Some notes:
* gap: is required only on iOS (when using UIWebView) and is needed for JS->native communication
* https://ssl.gstatic.com is required only on Android and is needed for TalkBack to function properly
* Disables use of inline scripts in order to mitigate risk of XSS vulnerabilities. To change this:
* Enable inline JS: add 'unsafe-inline' to default-src
-->
<meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *; img-src 'self' data: content:;">
<meta name="format-detection" content="telephone=no">
<meta name="msapplication-tap-highlight" content="no">
<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width">
<link rel="stylesheet" type="text/css" href="css/index.css">
<title>Hello World</title>
<link rel="stylesheet" href="fullcalendar/fullcalendar.css" />
<script src="lib/jquery.min.js"></script>
<script src="lib/moment.min.js"></script>
<script src="fullcalendar/fullcalendar.js"></script>
<script>
$(document).ready(function() {
// page is now ready, initialize the calendar...
$('#calendar').fullCalendar({
// put your options and callbacks here
})
});
</script>
</head>
<body>
<div id="calendar"></div>
<script type="text/javascript" src="cordova.js"></script>
<script type="text/javascript" src="js/index.js"></script>
</body>
</html>
答案 0 :(得分:0)
您的代码无法正常工作的原因有多种。由于信息不足,因此无法检查详细信息。以下是Remove-Variable $folder_and_prefix
的工作示例。请关注它:
Full Calendar
&#13;
$(document).ready(function() {
// page is now ready, initialize the calendar..
$('#calendar').fullCalendar({
weekends: false,
dayClick: function() {
alert('a day has been clicked!');
},
defaultView: 'agendaWeek'
});
});
&#13;
答案 1 :(得分:0)
没有任何事情发生,因为内联脚本(即实际上是页面一部分的脚本,而不是从链接的.js文件加载的脚本)被内容安全策略禁用。这是错误消息告诉您的内容。
假设您想要允许它们(尽管存在XSS攻击的潜在理论风险),那么启用的线索就在您的代码中位于其上方的注释中:
禁用内联脚本以降低XSS漏洞的风险。要改变这个:
- 启用内联JS:将'unsafe-inline'添加到default-src
因此,只需修改标记的default-src
部分即可包含该指令。改变它:
default-src 'self'
到
default-src 'self' 'unsafe-inline'
如果您不想这样做,那么另一种方法是将Javascript从您的页面移动到单独的.js文件,然后使用<script src=...
类型的标记提供指向它的链接。
请注意,这些都与fullCalendar没有任何直接关系,它完全与安全策略有关,后者控制允许页面使用的脚本和资源。有关此主题的介绍,请参阅https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP。