2013-07-30 5 views
10

Ich erstellte einfache HTML-Datei mit einfachen Ajax.Ajax in Jquery funktioniert nicht von lokalen Datei

index.html:

<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; Charset=UTF-8"> 
<script type="text/javascript" src="jquery.js"></script> 
</head> 
<body> 
    <div id="content"></div> 

    <script> 
     function show() 
     { 
       $.ajax({ 
       url: "2.html", 
       cache: false, 
       success: function(html){ 
        $("#content").html(html); 
       } 
      }); 
     } 

     $(document).ready(function(){ 
      show(); 
      setInterval('show()',1000); 
     }); 
    </script> 

</body> 
</html> 

Datei 2.html im selben Verzeichnis wie die Datei befindet index.html. Und enthält zum Beispiel:

<p>ssss hkl jh lkh <b>d1111</b></p> 

Als ich die index.html auf dem Webserver laufen, alles funktioniert. Aber wenn Sie die Datei index.html auf dem Computer als lokale Datei ausführen, funktioniert Ajax nicht. Wie man es repariert?

+0

Ist 'jquery.js' neben' index.html' enthalten? –

+3

Sind Sie in Chrome? Chrome erlaubt kein lokales Ajax-Material. – Jack

Antwort

10

Dies ist ein bekanntes Problem mit Chrome, wenn Sie es überprüfen. Verwenden Sie XAMPP, um einen lokalen Webserver auszuführen, und testen Sie Ihren Ajax-Anruf.

prüfen dieses Ticket: https://code.google.com/p/chromium/issues/detail?id=40787

+4

Noch schneller, verwenden Sie Python (natürlich). Im Terminal: 'cd/path/to/Projekt/folder' dann '> python -m Simple 8080' Verwenden http://127.0.0.1:8080/ oder eine Variation Ihr System wünschen. (OSX, Py 2.7x) –

+2

Oder Sie könnten node.js verwenden. > npm installieren -g http-server > cd/pfad/zu/projekt/ordner > http-server – Mark

15

Einige Browser implementieren starke Sicherheitsmaßnahmen, um zu verhindern, dass heruntergeladene Webseiten auf beliebige Dateien im Dateisystem zugreifen.

Wechseln Sie zu einem Browser mit schwächerer Sicherheit (ich glaube, Firefox erlaubt den Zugriff auf lokale Dateien über XHR) oder hören Sie auf, eine Website ohne HTTP zu starten.

+0

Auch mit Chrome mit der folgenden Befehlszeile: 'chrome --allow-file-access-from-files' – pdem