--allow-file-access-from-files
var xhr=null; if (window.ActiveXObject) xhr = new ActiveXObject("Microsoft.XMLHTTP"); else if (window.XMLHttpRequest) xhr = new XMLHttpRequest();
xhr.open("GET", "data.xml?nocache=" + Math.random(), true);
xhr = new XMLHttpRequest(); xhr.open('GET', 'reponse_ajax.txt', false); //false=synchrone xhr.send(); alert(xhr.responseText);
var xhr= new XMLHttpRequest(); xhr.open('GET', 'reponse_ajax.txt', true); //true=asynchrone xhr.onload=function () {alert(this.responseText)} //callback en xhr2. Pour xhr voir exemple utilisant onreadystatechange xhr.send();
Exemple simple
Autres exemples
var xhr; // objet XmlHttpRequest var mode; // true (asynchrone) ou false (synchrone) var params = "p1=v1&p2=v2" // paramètres de la requête // appel avec la méthode GET avec paramètres xhr.open("GET", urlServeur + "?" + params, mode); xhr.send(null); // appel avec la méthode POST avec paramètres xhr.open("POST", urlServeur, mode); xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); xhr.send(params);
attribut | description |
---|---|
xhr.responseText | Contient les données chargées, au fur et à mesure, sous forme de chaine de caractères. Elle est complètement remplie quand l'état vaut 4. |
xhr.responseXML | Contient un fichier XML chargé, et les méthodes de DOM permettront d'en extraire les données. Elle est assignée seulement au moment ou l'état est 4, et vaut null avant. |
xhr.response* | utilisé pour type 'arraybuffer' |
xhr.responseType* | Définir en 'arraybuffer' pour chargement de donnée binaire. Autres types existant: "blob", "document", "json", et "text". |
xhr.onload* | invoqué quand chargement terminé. Définir avant appel de xhr.send() . Passe xhr en paramètre de la fonction callback.
|
xhr.onreadystatechange | invoqué quand readyState est assigné |
xhr.readyState | Le code change successivement de valeur jusqu'à ce que le serveur soit prêt de, passant de 0 à 4.
xhr.onreadystatechange = function() { retour="readyState="+xhr.readyState; if(xhr.readyState == 4) retour="status code= "+xhr.status+" "+ xhr.statusText; } |
xhr.status | Code retour HTTP. 200 = ok, 404= pas trouvé |
attribut | description |
---|---|
xhr.abort() | stoppe activité |
xhr.getResponseHeader(nomEntete) | Retourne l'en-tête HTTP des données reçues après la dernière requête. Par exemple, xhr.getResponseHeader("Content-Type")
|
xhr.getAllResponseHeaders() | Retourne tous les entêtes HTTP sauf Set-Cookie |
xhr.open(mode, url, asynchrone [,login, password]) | mode: type de requête HTTP, GET, POST, HEAD url: le chemin du fichier. asynchrone: faux → synchrone. |
xhr.send(param) | param vide avec mode GET |
setRequestHeader(DOMString, DOMString) | Les arguments sont le nom de l'en-tête et la valeur. Plusieurs valeurs peuvent être envoyées successivement. |
function xhrGet(reqUri, callback, type) { var caller=xhrGet.caller var xhr=new XMLHttpRequest xhr.open("GET",reqUri,true) if (callback) xhr.load=function(xhr) { try {callback(xhr)} catch(e) {throw 'Erreur xhrGet\n URL: '+reqUri+'\nErreur: '+e+'responseText: '+xhr.responseText+'\nCaller: '+caller} } if (type) xhr.responseType=type xhr.send() } parseJSON = function (xhr) { parsedJSON = JSON.parse(xhr.responseText); x = parsedJSON['frames']['chaingun_impact.png']['spriteSourceSize']['x']; console.log(x); return x; }; xhrGet('/media/js/standalone/libs/gamedev_assets/weapon.json', parseJSON, null); xhrGet('/media/js/standalone/libs/gamedev_assets/bg_menu.ogg', playSound, 'arraybuffer');exemple implémentation de xhrGet