Maison  >  Article  >  interface Web  >  Problèmes concernant les requêtes asynchrones Ajax dans l'objet XMLHttpRequest

Problèmes concernant les requêtes asynchrones Ajax dans l'objet XMLHttpRequest

一个新手
一个新手original
2017-09-28 09:12:231360parcourir

XMLHttpRequestObject

XMLHttpRequest Object

1. s'appuie sur XMLHttpRequest en JavaScript

2. L'objet XMLHttpRequest est l'objet du composant XMLHttp qui permet aux scripts d'obtenir les données eXML renvoyées par le serveur ou d'envoyer des données au serveur.

5.

Vous devez créer un objet XMLHttpRequest avant d'utiliser

XMLHttpRequest pour envoyer des requêtes et traiter les réponses

6.XMLHttpRequest n'est pas un standard du W3C et peut être créé utiliser JavaScript de diverses manières Instance XMLHttpRequest7.

Dans

IE XMLHttpRequest est implémenté en tant que contrôle ActiveX, tandis que d'autres navigateurs l'implémentent en tant qu'objet JavaScript intégré

2. Création d'un objet XMLHttpRequest1422626fe7510bebf8672f513a6a2cd1

3. Propriétés de l'objet XMLHttpRequest (recevoir et afficher l'état actuel)1.readySate- Enregistre le statut de la demande renvoyée

.

0-pour l'initialisation : l'objet a été créé, l'unité a été initialisée et la méthode open n'a pas été appelée

. 1-Initialisation : L'objet a été créé, mais la méthode send n'a pas été appelée pour envoyer la requête

. 2-Envoyer des données : La méthode d'envoi a été appelée, mais l'en-tête HTTP est inconnu

. 3-Transmission des données : Des données partielles ont été acceptées, mais la réponse est incomplète

. 4-Complet : L'acceptation des données est terminée et les données de retour complètes peuvent être obtenues à ce moment

2.responseText-Recevez le contenu textuel de la réponse HTTP du client . Lecture seule

. Lorsque

readySate est 1/2, la valeur de réponseText est une chaîne vide

. Lorsque readyState vaut 3, les informations de réponse sont reçues et n'ont pas été complétées

. Lorsque readyState vaut 4, cela signifie que les informations de réponse ont été reçues

. Le codage des données de réponse par défaut xmlHttp est UTF-8

3.responseXML - Une fois send() exécuté, les informations renvoyées sont formatées dans un objet Document XML

. Le type MIME spécifié par

Content-Type doit être text/HTML

. Si Content-Type ne contient pas ce type, ResponseXML obtiendra une valeur nulle lors de la réception de

4. status - Une fois send() exécuté, status peut être utilisé pour lire l'état des choses . Données entières longues

. Renvoie le

Code d'état HTTP

de la requête en cours. Cet attribut n'est utilisé que lorsque readyState vaut 3 ou 4, sinon une erreur se produira lors de la lecture du statut

. 100 - Le client doit continuer à envoyer la demande

. 200-Transaction réussie

. 400-Mauvaise demande

. 403 - Demande non autorisée

. 404-Fichier, requête, URL

introuvable. Erreur interne de 500 serveurs

. Le serveur 502 est temporairement indisponible

. 505 - Le serveur ne prend pas en charge ou rejette la version HTTP dans l'en-tête de la requête

5. Une fois statusText-send() exécuté, l'état de la chose peut être lu via statusText

. Renvoie la ligne d'état

de la requête HTTP en cours. Cet attribut ne peut être utilisé que lorsque readyState est 3 ou 4, sinon une erreur se produira lors de la lecture de l'état

Onreadystatechange-Operations à effectuer lorsque readyState change

. . Habituellement, le nom de la fonction du gestionnaire est attribué à onreadystatechange pour spécifier la gestion des événements

pour l'objet XMLHttpRequest. Dans la fonction de traitement d'événement, effectuez le traitement correspondant

en fonction de la valeur d'état de

readyState. Exemple :

function test(){
xmlHttp.onreadystatechange=showInfo;
var url=”/ajax/urlInfo”;//请求路径
xmlHttp.open(“GET”,url,true);
xmlHttp.send(null);
}
Function showInfo(){
If(xmlHttp.readyState==4){
alert(“success”);
}
}

4. Méthode objet XMLHttpRequest (traitement dynamique d'informations diverses : envoi et réception de données, traitement des requêtes et réponses, etc.)

1.abort()-terminate l'Opération actuelle

. Arrêtez la requête HTTP effectuée par l'objet XMLHttpRequest et restaurez l'objet à son état initial

2.open()-xmlHttp.open(method,url,mode,user,pwd)

. Créez une nouvelle Requête HTTP et spécifiez la méthode de requête, l'URL, les informations de vérification, etc.

. méthode : POST, GET, PUT (la casse peut être ignorée)

. url : Adresse cible demandée

. mode : Spécifie si la requête est asynchrone, la valeur par défaut est true ; lorsque vrai, lorsque l'état change, la fonction de traitement

spécifiée par l'attribut onreadystatechange sera appelée. Après avoir appelé open(), l'objet XMLHttpRequest définit l'attribut readyState sur 1 et restaure les valeurs initiales de ResponseText, ResponseXML, status, statusText et d'autres attributs, et réinitialise les informations d'en-tête de requête

appelle Lorsque open(), readyState vaut 4, l'objet XMLHttpRequest réinitialisera la valeur ci-dessus

3.send()-xmlHttp.send(content)

. Envoyez une requête au serveur et acceptez la réponse

4.setRequestHeader()-setRequestHeader(header, value)

. Définissez individuellement les informations d'en-tête HTTP

pour une requête. Lorsque readyState vaut 1, cette méthode peut être appelée après send(), sinon une exception

sera renvoyée. Si un en-tête HTTP portant ce nom existe déjà, les informations d'origine seront écrasées par

. nom d'en-tête : type de chaîne

. value - La valeur du nom de l'en-tête : type de chaîne

5.getResponseHeader() - Lit l'en-tête du message envoyé par le serveur

. Les requêtes HEAD ignorent le contenu, leurs réponses sont donc plus petites que les réponses à GET ou POST

Obtenir le contenu :

. Content-Type : Type de contenu

. Content-Length : Longueur du contenu

. Last-Modify : La date de la dernière modification

. Exemple : fonction getHeadInfo() {

if(xmlHttp.readyState==4){
if(headeyType==”Content-Type”){
window.alert(“Content-Type:”+xmlHttp.getResponseHeader(“Content-Type”);
}
else if(headType==”Content-Length”){
window.alert(“Content-Length:”+xmlHttp,getResponseHeader(“Content-Length”);
}
else if(headType==”Last-Modify”){
window.alert(“Last-Modify:”+xmlHttp.getResponseHeader);
}
}
}

. Lors de l'obtention des informations d'en-tête, toutes les informations ne peuvent pas être obtenues

6.getAllResponseHeaders() -Obtenir toutes les informations d'en-tête

。在获取时只用HEAD即可获取

。例:fuction headRequest(){

creatXMLHttpRequest();
xmlHttp.onreadystatechange=getHeadInfo;
xmlHttp.open(“HEAD”,”url”,false);
xmlHttp.send(null);
}
function getHeadInfo(){
if(readyState==4){
Alter(xmlHttp.getAllResponseHeaders());
}

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn