為什麼 jQuery load() 方法只能在 Firefox 中運作?
在嘗試深入研究 jQuery 和 AJAX 時,使用者遇到了一個無法解釋的問題。儘管遵循了官方 jQuery API 網站的指南,他們的程式碼仍無法在 Chrome 和 Internet Explorer 中產生預期的結果。有趣的是,程式碼在 Firefox 中開啟時成功執行。
程式碼涉及使用 load() 方法擷取外部 HTML 檔案 (list1.html) 並將其內容載入到指定的 DIV 元素(「stage」)中)。相關的 HTML 和 JavaScript 程式碼:
<code class="html"><script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script> <script> $( "#stage" ).load( "list1.html" ); </script></code>
雖然程式碼在 Firefox 中按預期呈現,顯示項目符號列表,但在 Chrome 或 Internet Explorer 中不會顯示任何內容。造成這種差異的原因是現代瀏覽器(包括 Chrome 和 IE)施加的存取限制。
瀏覽器安全限制
為了增強安全性,現代瀏覽器會阻止開啟網頁來自本機檔案(例如,透過file:// 協定) 存取來自其他來源的內容(例如,存取外部文件)。此限制適用於 load() 方法,該方法嘗試從不同位置檢索檔案。
解決方案
要克服存取限制,請啟動 Chrome 或 Chromium使用 --allow-file-access-from-files 標誌。此標誌授予瀏覽器從網頁上下文存取本機檔案的權限。若要啟用此標誌:
chrome.exe --allow-file-access-from-files
或者,您可以透過使用下列目標路徑建立桌面捷徑來永久設定此標誌:
"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --allow-file-access-from-files
以上是為什麼 jQuery 的 load() 方法只能在 Firefox 中運作,而不能在 Chrome 或 Internet Explorer 中運作?的詳細內容。更多資訊請關注PHP中文網其他相關文章!