我正在嘗試在 Electron (v. 16.0.0) 中加載 jQuery,但出現此錯誤:

在head元素中,我包含了這一行:
<meta http-equiv="Content-Security-Policy" content="script-src 'self';">
另外,在body元素內部,我試影像這樣加載 jQuery:
<script src="https://code.jquery.com/jquery-3.6.0.min.js" integrity="sha256-/xUj 3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4=" crossorigin="anonymous"></script>
我嘗試了很多方法來解決這個問題,但無濟于事。以前,我也嘗試過這樣加載jQuery,但它給了我類似的錯誤,如下所示:
<script>window.$ = window.jQuery = require('./libraries/jQuery/jquery.min.js');</script>

對相關問題的回答對我也不起作用。我該怎么辦?
uj5u.com熱心網友回復:
就此而言,Electron 或任何其他實作內容安全策略的Web 瀏覽器會正確拒絕加載來自任意來源(URL)的腳本,甚至“行內”腳本(例如,script元素內的腳本文本)的原因,是因為您的安全策略被明確指定為拒絕此類嘗試,并且meta您添加了該元素:
<meta http-equiv="Content-Security-Policy" content="script-src 'self';">
你為什么添加它?是在別人手里嗎?為什么會在那里?Electron 拒絕加載相關腳本的原因僅此而已。
上述content屬性的值的作用是指示 Electron只允許從與包含該meta元素的檔案的來源相同的來源加載腳本。這有效地排除了所有其他來源,如https://code.jquery.com 和行內腳本(必須明確允許)。基本上,該值將被解釋為“僅允許從同一站點加載腳本”。
更簡單地說,您自己禁止從您嘗試使用的位置加載腳本,并使用該meta元素。
您需要了解內容安全策略機制如何作業并適用于您的案例。您必須決定是否允許從諸如 code.jquery.com 之類的源加載腳本,或者是否只允許從您的網站加載腳本,這反過來可能需要您復制 JQuery您希望用于由您的網站提供服務的庫。您還必須決定是否要在您的站點上允許“行內”腳本,無論出于何種原因,您認為是必要的。
安全策略機制本身非常有用,不要回避它,它存在是有原因的——幫助您防止其他惡意腳本或機制加載的惡意腳本濫用您的站點用戶。但顯然,您需要正確使用它。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/358609.html
標籤:javascript 查询 内容安全策略
上一篇:如何為以下替換添加條件?
