24

.load() was working fine, but for some reason it's not in Chrome now (presumably some kind of update). I'm on Chrome 5.0.375.55. I've isolated the problem to this:

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>

This works on Firefox and IE, but on Chrome it replaces the contents of the #reader div with nothing.

Edit: I should add that I'm running this locally, and it's never going to be deployed on a web server.

Edit2: I've tried .load('file:///C:/path/to/test.htm') which works in FF but not Chrome.

Skilldrick
  • 69,215
  • 34
  • 177
  • 229

3 Answers3

20

It's the "same origin policy" as interpreted by Chrome (or a bug with the same effect). Try running Chrome with --allow-file-access-from-files.

Ken Redler
  • 23,863
  • 8
  • 57
  • 69
  • 2
    Thank god for Stack Overflow :) Thanks a lot, that solved it. This is a pain though, because my app will be distributed on CD, so it just won't work on Chrome. I hope they fix it soon! – Skilldrick Jun 07 '10 at 15:25
  • 2
    You can follow their progress on the issue here: http://code.google.com/p/chromium/issues/detail?id=40787 – Ken Redler Jun 07 '10 at 15:55
4

I've the same problem, but you may find it works if you upload it to a web server. I've tested it and it done when i upload test page to server.

Duc Manh Nguyen
  • 768
  • 2
  • 8
  • 13
2

Neither --disable-web-security nor --allow-file-access-from-files worked for me, although I found that using '127.0.0.1' instead of 'localhost' solved the problem.

JwC
  • 146
  • 2
  • 4