为什么 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中文网其他相关文章!