views:

474

answers:

3

.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"&gt;&lt;/script&gt;
    <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.

+6  A: 

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
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
You can follow their progress on the issue here: http://code.google.com/p/chromium/issues/detail?id=40787
Ken Redler
+1  A: 

Thanks guys, i was having the same problem. It only worked when i moved everything to the web server.

Monish
A: 

Yup. Just wasted over an hour trying to fix this, and it turns out all I had to do was load the site to my server. Works like a charm now. Thanks guys!

Travmatron86