Latest web development tutorials

AJAX - l'envoi d'une requête au serveur

objet XMLHttpRequest pour échanger des données avec le serveur.


Envoie une requête au serveur

Pour envoyer une demande au serveur, nous utilisons l'open () et send () méthode de l'objet XMLHttpRequest:

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

manière description
ouvert(méthode, url, async)

Type spécifie la demande, URL et le traitement asynchrone si des demandes.

  • méthode:le type de demande, GET ou POST
  • url:l'emplacement du fichier sur le serveur
  • async: true (asynchrone)ou faux (synchrone)
envoyer(string)

Envoie une requête au serveur.

  • chaîne:uniquement pour les requêtes POST


GET ou POST?

En comparaison avec le POST, GET plus facile et plus rapide, et dans la plupart des cas peuvent être utilisés.

Toutefois, dans les cas suivants, s'il vous plaît utiliser la requête POST:

  • Impossible d'utiliser les fichiers de cache (fichiers ou mettre à jour la base de données sur le serveur)
  • Envoyer de grandes quantités de données (POST ne limite pas la quantité de données) au serveur
  • Lors de l'envoi de l'entrée utilisateur contient des caractères inconnus, POST est plus stable et plus fiable que GET

GET demande

Une requête GET simple:

Exemples

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

Essayez »

Dans l'exemple ci-dessus, vous pouvez obtenir les résultats mis en cache.

Pour éviter cela, ajoutez un identifiant unique à l'URL:

Exemples

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

Essayez »

Si vous voulez envoyer des informations par la méthode GET, ajoutez les informations à l'adresse URL:

Exemples

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

Essayez »


demande POST

Une requête POST simple:

Exemples

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

Essayez »

Si vous avez besoin que les données comme une forme HTML POST, utilisez setRequestHeader () pour ajouter des en-têtes HTTP. Ensuite, spécifiez que vous souhaitez envoyer des données dans la méthode send ():

Exemples

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

Essayez »

方法 描述
setRequestHeader(header,value)

向请求添加 HTTP 头。

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


url - fichiers sur le serveur

l' argumenturlméthode open () est l'adresse du serveur de fichiers:

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

Le fichier peut être tout type de fichier, comme .txt et .xml ou les fichiers de script de serveur, telles que .asp et .php (avant de retourner une réponse, pour effectuer des tâches sur le serveur).


Asynchronous - Vrai ou Faux?

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

Si vous voulez utiliser l'objet XMLHttpRequest AJAX, puis, paramètre async dont méthode open () doit être définie sur true:

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

Pour les développeurs Web, envoyer une requête asynchrone est un grand pas en avant. Dans le serveur pour effectuer de nombreuses tâches sont très longues. Avant AJAX se produire, ce qui peut entraîner l'application de suspendre ou d'arrêter.

Grâce à AJAX, JavaScript sans attendre la réponse du serveur, mais:

  • D'autres scripts sont exécutés en attendant la réponse du serveur
  • Lorsque la réponse est prête à répondre à traiter

Async = true

Lorsque vous utilisez async = true, svp dispositions en réponse aux événements de onreadystatechange prêt à remplir une fonction:

Exemples

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();

Essayez »

Vous en apprendrez plus sur le contenu de onreadystatechange dans un chapitre ultérieur.


Async = false

Pour utiliser le async = false, définir la méthode open () dans le troisième paramètre à false:

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

Nous ne recommandons pas d'utiliser async = false, mais pour une petite demande, est également possible.

Rappelez-vous, JavaScript attendra jusqu'à ce que la réponse du serveur est prêt à procéder. Si le serveur est occupé ou lent, ou arrêter l'application se bloque.

Remarque: Lorsque vous utilisez le async = false, s'il vous plaît ne pas écrire onreadystatechange fonction - mettre le code dans l'envoi () retour à la déclaration:

Exemples

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

Essayez »