Warum funktioniert die jQuery-load()-Methode nur in Firefox?
Beim Versuch, sich mit jQuery und AJAX zu befassen, ist ein Benutzer auf Folgendes gestoßen ein unerklärliches Problem. Obwohl sie einer Anleitung auf der offiziellen jQuery-API-Website folgen, liefert ihr Code in Chrome und Internet Explorer nicht das erwartete Ergebnis. Interessanterweise wird der Code erfolgreich ausgeführt, wenn er in Firefox geöffnet wird.
Der Code beinhaltet die Verwendung der Methode „load()“, um eine externe HTML-Datei (list1.html) abzurufen und deren Inhalt in ein bestimmtes DIV-Element („stage“) zu laden. ). Der relevante HTML- und JavaScript-Code:
<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>
Während der Code in Firefox wie erwartet gerendert wird und eine Liste mit Elementen mit Aufzählungspunkten anzeigt, wird in Chrome oder Internet Explorer nichts angezeigt. Die Ursache für diese Diskrepanz ist eine Zugriffsbeschränkung, die von modernen Browsern, einschließlich Chrome und IE, auferlegt wird.
Browser-Sicherheitsbeschränkung
Um die Sicherheit zu erhöhen, verhindern moderne Browser das Öffnen von Webseiten von lokalen Dateien (z. B. über das file://-Protokoll) vom Zugriff auf Inhalte anderer Herkunft (z. B. Zugriff auf externe Dateien). Diese Einschränkung gilt für die Methode „load()“, die versucht, eine Datei von einem anderen Speicherort abzurufen.
Lösung
Um die Zugriffsbeschränkung zu überwinden, starten Sie Chrome oder Chromium mit dem Flag --allow-file-access-from-files. Dieses Flag gewährt dem Browser die Berechtigung, im Kontext der Webseite auf lokale Dateien zuzugreifen. So aktivieren Sie dieses Flag:
chrome.exe --allow-file-access-from-files
Alternativ können Sie dieses Flag dauerhaft setzen, indem Sie eine Desktop-Verknüpfung mit folgendem Zielpfad erstellen:
"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --allow-file-access-from-files
Das obige ist der detaillierte Inhalt vonWarum funktioniert die Methode „load()' von jQuery nur in Firefox, nicht jedoch in Chrome oder Internet Explorer?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!