猿问

无法从 HTML/EJS 文件运行外部 javascript

  我正在尝试在 HTML/EJS 页面内的外部文件中运行 javascript。代码如下:


<body onload="initialize()">


//HTML content


  <script src="/public/js/gallery.js"</script>


</body>

“initialize()”函数位于“gallery.js”文件中。问题是我不断收到一个错误,内容如下:


“拒绝执行内联脚本,因为它违反了以下内容安全策略指令:“script-src 'self'”。“unsafe-inline”关键字、哈希值 ('sha256-tPMkUWbNPBXQQ3rlbFhILb35szR89eQb3Z41bzLr+wQ=') 或随机数需要 ('nonce-...') 才能启用内联执行。”


我在页面上的“head”标签中尝试了许多尝试修复。其中包括“<meta Content-Security-Policy: script-src 'self' 'unsafe-inline'">”、“Content-Security-Policy: script-src 'self'”和“meta http-equiv=”content -安全策略内容=脚本-src“...


这太令人抓狂了......我花了几个小时试图纠正这个问题。有人可以解释一下问题是什么吗......???我提前谢谢你。问候。


“gallery.js”文件内容如下:


addEventListener("load", initialize);


function initialize() {


//do stuff  


}


SMILET
浏览 83回答 1
1回答

宝慕林4294392

通过禁用禁止内联脚本的 CSP 规则来解决此问题并不是一个好主意。内联脚本是 XSS 攻击的主要载体。相反,删除内联脚本并将等效功能放入.js文件本身中。onload="initialize()"从 HTML 中删除。添加addEventListener("load", initialize)到 JS 中。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答