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.send();
manière | description |
---|---|
ouvert(méthode, url, async) | Type spécifie la demande, URL et le traitement asynchrone si des demandes.
|
envoyer(string) | Envoie une requête au serveur.
|
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:
Dans l'exemple ci-dessus, vous pouvez obtenir les résultats mis en cache.
Pour éviter cela, ajoutez un identifiant unique à l'URL:
Si vous voulez envoyer des informations par la méthode GET, ajoutez les informations à l'adresse URL:
Exemples
xmlhttp.send();
Essayez »
demande POST
Une requête POST simple:
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.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("fname=Henry&lname=Ford");
Essayez »
方法 | 描述 |
---|---|
setRequestHeader(header,value) |
向请求添加 HTTP 头。
|
url - fichiers sur le serveur
l' argumenturlméthode open () est l'adresse du serveur de fichiers:
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:
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
{
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.send();
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
Essayez »