1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
|
// Envoi une requete avec les données passées en parametre
function sendRequest(data){
// Récupère une HttpRequest
var http_request = getHttpRequest();
if (!http_request){
// Requete impossible
alert("XMLHttpRequest non supporté par votre navigateur Internet");
return 0;
}
// Faire la requete AJAX
//-------------------------------
// 1 - Appel de la fonction de retour
// 2 - Open(mode, url, boolean)
// -> mode: type de requête, GET ou POST
// -> url: l'endroit ou trouver les données, un fichier avec son chemin sur le disque.
// -> boolean: true (asynchrone) / false (synchrone).
// 3 - Ne pas oublier ça pour la methode POST
// 4 - Effectue la requête en envoyant les données :
http_request.onreadystatechange = function() { onResult(http_request); };
http_request.open('POST', "<NOM DE LA SERVLET>", true);
http_request.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
http_request.send(data); // Format -> var1=truc&var2=bidule
}
// Fonction appelée qd la requete est finie
function onResult(http_request) {
if (http_request.readyState == 4) { /* 4 : état "complete" */
if (http_request.status == 200) { /* 200 : statut OK" */
// TODO
}
}
}
// ------------------------------------ Fonction AJAX ------------------------------------------------------
// Donne une instance HttpRequest selon le navigateur (renvoie HttpRequest ou false si pb)
function getHttpRequest() {
var http_request = false;
if (window.XMLHttpRequest) { // Mozilla, Safari,...
http_request = new XMLHttpRequest();
if (http_request.overrideMimeType) {
http_request.overrideMimeType('text/xml');
}
} else if (window.ActiveXObject) { // IE
try {
http_request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
http_request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
if (!http_request) {
alert('Impossible de créer une instance XMLHTTP');
}
// Soit false si pb soit l'objet http_request
return http_request;
} |