Latest web development tutorials

AJAX - Senden einer Anfrage an den Server

XMLHttpRequest-Objekt Daten mit dem Server auszutauschen.


Sendet eine Anfrage an den Server

Um eine Anfrage an den Server zu senden, verwenden wir die offene das XMLHttpRequest-Objekt () und send () -Methode:

xmlhttp.open("GET","ajax_info.txt",true);
xmlhttp.send();

Weg Beschreibung
offen(Methode, URL, async)

Typ gibt die Anforderung, URL und ob die asynchrone Verarbeitung von Anfragen.

  • Methode:die Art der Anfrage; GET oder POST
  • url:der Ort der Datei auf dem Server
  • async: true (asynchron)oder falsch (synchron)
senden(string)

Sendet eine Anfrage an den Server.

  • string:nur für POST - Anfragen


GET oder POST?

Verglichen mit dem POST, GET einfacher und schneller, und in den meisten Fällen verwendet werden kann.

Doch in den folgenden Fällen verwenden Sie bitte die POST-Anfrage:

  • Können Sie die Cache-Dateien zu verwenden (Dateien oder die Datenbank auf dem Server aktualisieren)
  • Senden, große Mengen von Daten (POST begrenzt nicht die Menge der Daten) an den Server
  • Beim Senden des Eingangs Benutzer unbekannte Zeichen enthält, ist POST stabiler und zuverlässiger als GET

GET-Anfrage

Eine einfache GET-Anfrage:

Beispiele

xmlhttp.open("GET","demo_get.html",true);
xmlhttp.send();

Versuchen »

In dem obigen Beispiel könnten Sie die zwischengespeicherten Ergebnisse zu erzielen.

Um dies zu vermeiden, fügen Sie eine eindeutige ID an die URL:

Beispiele

xmlhttp.open("GET","demo_get.html?t=" + Math.random(),true);
xmlhttp.send();

Versuchen »

Wenn Sie Informationen über GET-Methode senden möchten, fügen Sie die Informationen an die URL:

Beispiele

xmlhttp.open("GET","demo_get2.html?fname=Henry&lname=Ford",true);
xmlhttp.send();

Versuchen »


POST-Anfrage

Eine einfache POST-Anfrage:

Beispiele

xmlhttp.open("POST","demo_post.html",true);
xmlhttp.send();

Versuchen »

Wenn Sie die Daten als HTML-Formular POST verwenden setRequestHeader (), um HTTP-Header hinzuzufügen. Dann geben Sie, dass Sie Daten in der Methode send () senden möchten:

Beispiele

xmlhttp.open("POST","ajax_test.html",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("fname=Henry&lname=Ford");

Versuchen »

方法 描述
setRequestHeader(header,value)

向请求添加 HTTP 头。

  • header: 规定头的名称
  • value: 规定头的值


url - Dateien auf dem Server

urlArgument open () -Methode ist die Adresse des Dateiservers:

xmlhttp.open("GET","ajax_test.html",true);

Die Datei kann jede Art von Datei sein, wie .txt und .xml oder Server-Skript-Dateien, wie .asp und .php (vor eine Antwort zurück, auf dem Server, um Aufgaben).


Asynchronous - Richtig oder falsch?

AJAX bedeutet Asynchronous JavaScript and XML (Asynchronous JavaScript and XML).

Wenn Sie möchten, Objekt AJAX XMLHttpRequest zu verwenden, dann, Asynchron-Parameter, dessen Methode open () muss auf true gesetzt werden:

xmlhttp.open("GET","ajax_test.html",true);

Für Web-Entwickler, senden Sie eine asynchrone Anforderung ein großer Schritt vorwärts ist. In dem Server viele Aufgaben sind sehr zeitaufwendig durchzuführen. Bevor AJAX auftreten, die der Anwendung führen kann zu hängen oder zu stoppen.

Durch AJAX, JavaScript, ohne auf die Antwort des Servers warten, aber:

  • Andere Skripte ausführen, während für die Antwort vom Server warten
  • Wenn die Antwort bereit ist, zu verarbeiten, zu reagieren,

Async = true

Wenn Asynchron mit = true, bitte Vorschriften als Reaktion auf Ereignisse in onreadystatechange Bereitschaft, eine Funktion auszuführen:

Beispiele

xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","ajax_info.txt",true);
xmlhttp.send();

Versuchen »

Sie werden mehr über die onreadystatechange Inhalt in einem späteren Kapitel lernen.


Async = false

Um die async verwenden = false, stellen Sie die open () -Methode im dritten Parameter auf false:

xmlhttp.open("GET","test1.txt",false);

Wir empfehlen nicht, mit async = false, aber für einige kleine Anfrage, ist ebenfalls möglich.

Denken Sie daran, JavaScript wartet, bis die Antwort des Servers ist bereit zu gehen. Wenn der Server besetzt ist oder langsam, oder die Anwendung hängt stoppen.

Hinweis: Wenn Sie die async verwenden = false, bitte onreadystatechange Funktion nicht schreiben - setzen Sie den Code in das send () zurück zu der Aussage:

Beispiele

xmlhttp.open("GET","ajax_info.txt",false);
xmlhttp.send();
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;

Versuchen »