【问题标题】:jQuery .load() not working in ChromejQuery .load() 在 Chrome 中不起作用
【发布时间】:2011-02-28 18:00:50
【问题描述】:

.load() 工作正常,但由于某种原因它现在不在 Chrome 中(可能是某种更新)。我在 Chrome 5.0.375.55 上。我已将问题隔离为:

index.htm

<html>
  <head>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
    <script type="text/javascript">
      $(document).ready(function () {
          $('#reader').load('test.htm');
      });
    </script>

  </head>
  <body>
    <div id='reader'>Loading ...</div>
  </body>
</html>

test.htm

<h1>Loaded successfully</h1>

这适用于 Firefox 和 IE,但在 Chrome 上它会用任何内容替换 #reader div 的内容。

编辑:我应该补充一点,我在本地运行它,它永远不会部署在网络服务器上。

Edit2:我试过.load('file:///C:/path/to/test.htm'),它适用于FF,但不适用于Chrome。

【问题讨论】:

  • 您是否尝试过指定确切的路径?
  • 只是为了笑,尝试将完整的 URL、http 和所有内容放到测试页面。上周我遇到了类似的问题,完整的 URL 修复了它。
  • @Will 和 Neil:谢谢,但请查看我的编辑。
  • 显然 Chrome 在文件系统托管的文件和同源策略方面存在问题。见stackoverflow.com/questions/2541949/…
  • 我有同样的问题,但 --allow-file-access-from-files 对我不起作用。

标签: jquery google-chrome


【解决方案1】:

这是 Chrome 解释的“同源策略”(或具有相同效果的错误)。尝试使用 --allow-file-access-from-files 运行 Chrome。

【讨论】:

  • 感谢上帝的 Stack Overflow :) 非常感谢,解决了它。不过这很痛苦,因为我的应用程序将在 CD 上分发,所以它无法在 Chrome 上运行。我希望他们尽快修复它!
  • 你可以在这里关注他们在这个问题上的进展:code.google.com/p/chromium/issues/detail?id=40787
【解决方案2】:

我有同样的问题,但如果你将它上传到网络服务器,你可能会发现它有效。我已经测试过了,当我将测试页面上传到服务器时它就完成了。

【讨论】:

    【解决方案3】:

    --disable-web-security 和 --allow-file-access-from-files 都不适合我,虽然我发现使用 '127.0.0.1' 而不是 'localhost' 解决了这个问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多