XMLHttpRequest, dh AJAX, ohne XML.
Die genaue Art und Weise, wie Sie dies tun, hängt davon ab, welches JavaScript-Framework Sie verwenden. Wenn wir jedoch Interoperabilitätsprobleme außer Acht lassen, sieht Ihr Code folgendermaßen aus:
var client = new XMLHttpRequest ();
client.open ('GET', '/foo.txt');
client.onreadystatechange = function () {
alert (client.responseText);
}}
client.send ();
Normalerweise ist XMLHttpRequest jedoch nicht auf allen Plattformen verfügbar, sodass einige Fudgery-Vorgänge durchgeführt werden. Wieder einmal ist es am besten, ein AJAX-Framework wie jQuery zu verwenden.
Eine zusätzliche Überlegung: Dies funktioniert nur, solange sich foo.txt in derselben Domain befindet. Wenn es sich in einer anderen Domäne befindet, verhindern Sicherheitsrichtlinien mit demselben Ursprung, dass Sie das Ergebnis lesen können.
if (client.readyState === 4){ }
client.onloadend
die vollständigen Datenclient.readyState
Eigenschaftswert überprüft wird. Ich stimme es ab, bis es so ist. Die Leute werden die Kommentare nicht lesen, um herauszufinden, dass die Antwort nur teilweise richtig ist.Hier ist, wie ich es in jquery gemacht habe:
quelle
file://
dh :file:///example.com/foo.html
. Firefox beschwert sich über einen Syntaxfehler und Chrome-Blöcke, da es sich um eine Cross-Origin-Anforderung handelt.dataType
Parameter angeben , siehe api.jquery.com/jQuery.get/http://...
Teil weglassen , weil es auf derselben Domain lebt, funktioniert es, zjQuery.get("foo.txt", ...)
.Update 2019: Verwenden von Fetch:
https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API
quelle
response.ok
irgendwo (oder gleichwertig) etwas in Ihren Code einzufügen, um eine Fehlerbehandlung zu erreichen ? Ich bin nicht sehr erfahrenfetch
, daher weiß ich nicht genau, wo ich es einstellen soll.Wenn Sie nur eine konstante Zeichenfolge aus der Textdatei möchten, können Sie diese als JavaScript einfügen:
Die aus der Datei geladene Zeichenfolge wird nach dem Laden für JavaScript zugänglich. Das Zeichen "(Backtick) beginnt und endet ein Vorlagenliteral , wobei sowohl" als auch "Zeichen in Ihrem Textblock berücksichtigt werden .
Dieser Ansatz funktioniert gut, wenn Sie versuchen, eine Datei lokal zu laden, da Chrome AJAX für URLs mit dem
file://
Schema nicht zulässt .quelle
Beachten Sie, dass Javascript auf dem Client und nicht auf dem Server ausgeführt wird. Sie können in Javascript nicht wirklich eine Datei vom Server laden. Was passiert ist, dass Javascript eine Anfrage an den Server sendet und der Server den Inhalt der angeforderten Datei zurücksendet. Wie erhält Javascript den Inhalt? Dafür ist die Rückruffunktion gedacht. In Edwards Fall also
und in danbs Fall ist es
Diese Funktion wird immer dann aufgerufen, wenn die Daten eintreffen. Die jQuery-Version verwendet implizit Ajax. Sie erleichtert lediglich die Codierung, indem dieser Code in die Bibliothek eingekapselt wird.
quelle
Update 2020: Verwenden von Fetch mit async / await
Beachten Sie, dass
await
dies nur in einerasync
Funktion verwendet werden kann. Ein längeres Beispiel könnte seinquelle
Dies sollte in fast allen Browsern funktionieren:
Zusätzlich gibt es die neue
Fetch
API:quelle
Wenn Sie mit jQuery arbeiten, anstatt
jQuery.get
zSie könnten verwenden
.load
, was Ihnen eine viel kondensiertere Form gibt:.load
bietet Ihnen auch die Möglichkeit, Teilseiten zu laden, die nützlich sein können, siehe api.jquery.com/load/ .quelle
Wenn Ihre Eingabe als XML strukturiert war, können Sie die
importXML
Funktion verwenden. (Mehr Infos hier bei quirksmode ).Wenn es sich nicht um XML handelt und es keine äquivalente Funktion zum Importieren von einfachem Text gibt, können Sie es in einem versteckten Iframe öffnen und dann den Inhalt von dort lesen.
quelle