vérif avant soumission en Ajax

Default
,

Bonjour,

Je bricole une requête ajax qui va voir si un utilisateur se connecte bien à son compte avant de changer de page
Voila je comprends pas comment ça marche ce truc...

A priori ceci fonctionne ( je dis à priori car pour l'instant j'ai testé qu'avec la console de Chrome et IE)

                            var emailcompte= $('#emailcompte').val('test');
                            var pwdcompte= $('#pwdcompte').val('test');

                            $.ajax({
                                type:"GET",
                                url:"https://www.test.fr/compte/co?",
                                data: "emailcompte="+emailcompte+"&pwdcompte="+pwdcompte,
                                success:function(data){

                                    if(data.readyState == 4 && data.status == 200 && data.statusText == "success"){
                                        if(data == 1){
                                            $("#erreur").html("Valid");
                                        }else{
                                            $("#erreur").html("Invalid username and/or password.");

                                        }                                           
                                    };                                      
                                }
                            }); 

Mais alors pourquoi on devrais ajouter tout ça en plus en devant inclure ce qu'il y a plus haut ?

var getHttpRequest = function () {
  var httpRequest = false;

  if (window.XMLHttpRequest) { // Mozilla, Safari,...
    httpRequest = new XMLHttpRequest();
    if (httpRequest.overrideMimeType) {
      httpRequest.overrideMimeType('text/xml');
    }
  }
  else if (window.ActiveXObject) { // IE
    try {
      httpRequest = new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch (e) {
      try {
        httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
      }
      catch (e) {}
    }
  }

  if (!httpRequest) {
    alert('Abandon :( Impossible de créer une instance XMLHTTP');
    return false;
  }

  return httpRequest
}           





var xhr = getHttpRequest()
xhr.open('GET', 'http://localhost/demo', true)
xhr.setRequestHeader('X-Requested-With', 'xmlhttprequest')
xhr.send()  

4 Réponse

5467
,

Bonjour,

Déja jamais de password dans une requête GET, le password se retrouve dans les logs du serveur.
Si ton serveur est bien codé, un code 200 suffit, sinon normalement c'est un code 401 qui sera traité par $ajax error.

Je sais pas ou tu as trouvé le deuxième bout de code mais ça date d'internet explorer, c'est totalement obsolète.

Default
,

pour le mot de passe, il est envoyé en clair par GET mais derrière, la cible, (le script php) le hash ... je pense que ça pause pas de problème ?

Pour la requête Ajax, tu penses que c'est suffisant ?

                            var emailcompte= $('#emailcompte').val('test');
                            var pwdcompte= $('#pwdcompte').val('test');

                            $.ajax({
                                type:"GET",
                                url:"https://www.test.fr/compte/co?",
                                data: "emailcompte="+emailcompte+"&pwdcompte="+pwdcompte,
                                success:function(data){

                                    if(data.readyState == 4 && data.status == 200 && data.statusText == "success"){
                                        if(data == 1){
                                            $("#erreur").html("Valid");
                                        }else{
                                            $("#erreur").html("Invalid username and/or password.");

                                        }                                           
                                    };                                      
                                }
                            }); 

pas de vieux IE à prendre en compte ?

5467
,

En fait si ça pose un problème ton mot de passe est en clair dans un fichier le log.

Default
,

ha ok !
J'avais pas pensé à ça ... bon bé je vais utiliser la méthode POST