Partage
  • Partager sur Facebook
  • Partager sur Twitter

Fonction générale pour Ajax

Sujet résolu
    5 janvier 2009 à 5:22:52

    Bonjour à tous.

    Est-il possible de réaliser une fonction pour généraliser les appels en Ajax ?

    Du genre... :
    function appelAjax(method,url,str_param,callback) {
    /* ... ... */
    callBack(xhr.responseText);
    /* ... ... */
    if(method=="GET") {
       xhr.open("GET", url+"?"+str, true);
       xhr.send(null);
    } else if(method=="POST") {
       xhr.open("POST",url,true);
       xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
       xhr.send(str);
    }
    }
    


    Cette fonction marche, j'ai testé... Mais comporte-t-elle des risques ? (J'ai jamais bien compris comment on pouvait "pirater" les envois de données...)
    • Partager sur Facebook
    • Partager sur Twitter
      5 janvier 2009 à 20:43:48

      Moi personnellement, j'utilise celle là :
      //Récuperer la réponse d'une URL
      function requeteAJAX(param_) {
      	if(window.XMLHttpRequest)
      		var xhr_object = new XMLHttpRequest();
      	else if(window.ActiveXObject)
      		var xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
      	else
      		return false;
      		
      	var url = (typeof param_ == "string")? param_ : param_.url;
      	var method = (typeof param_.method == "string")? param_.method : "GET";
      	var asynchrone = (typeof param_.asynchrone == "boolean")? param_.asynchrone : true;
      	var parametres = (typeof param_.parametres == "string")? param_.parametres : null;
      	var callback = (typeof param_.callback == "function")? function() {
      		if(xhr_object.readyState == 4 && xhr_object.status == 200)
      			if(param_.paramCallback != "undefined")
      				param_.callback(xhr_object.responseText, param_.paramCallback);
      			else
      				param_.callback(xhr_object.responseText);
      	} : function() {
      		if(xhr_object.readyState == 4 && xhr_object.status == 200)
      			return xhr_object.responseText;
      	};
      	
      	xhr_object.open(method, url, asynchrone);
      	xhr_object.send(parametres);
      	xhr_object.onreadystatechange = callback;
      }
      


      Après que tu passe par une fonction ou pas pour faire tes requêtes, ca sera toujours facilement modifiable et non sécurisé ;) .
      • Partager sur Facebook
      • Partager sur Twitter
        5 janvier 2009 à 20:48:09

        Y'a pas de raison de ne pas pouvoir. À vrai dire, que tu réécrives le code ou bien que tu utilises une fonction pour ça ne va pas dégrader la sécurité.
        • Partager sur Facebook
        • Partager sur Twitter
          6 janvier 2009 à 0:58:15

          Yes cool ta fonction Timot, merci :)
          Ca c'est un truc que j'arrive toujours pas à faire... param_, c'est un truc prédéfini de JS ? ou juste un nom comme ça ?

          Et si quelqu'un veut bien répondre (sinon j'irai poster dans le forum adapté ^^ ), quelles sont (brièvement) les méthodes pour sécuriser l'envoi de données (en ajax et/ou php) ?
          • Partager sur Facebook
          • Partager sur Twitter
          Anonyme
            6 janvier 2009 à 1:07:02

            "param_" n'a rien de standard. c'est "arguments" qui est standard, et qui contient tous les paramètres passé à la fonction dans un tableau.

            et tu veux dire quoi par sécuriser l'envoie de donner? que personne ne puisse intercepter les paquets et voir ce que l'on fait? https of course. (utilisation de SSL/TLS, meme genre de truc qu'utilise ssh) y'a pas d'autres solution.
            • Partager sur Facebook
            • Partager sur Twitter
              6 janvier 2009 à 1:15:41

              Mais alors comment ça se fait que param_ contiennent tous les paramètres sous la forme param_.paramètre ???

              Je pensais à des trucs (des fonctions php ?) qu'on est "censés" ajouter pour vérifier les données à la réception... ?
              • Partager sur Facebook
              • Partager sur Twitter
              Anonyme
                6 janvier 2009 à 1:26:02

                parce que le sagouin n'a pas donné la doc de sa fonction.

                param_ est un objet du genre
                ajaxmachinfonction({
                    method : fonctionmickey,
                    parametre2: "salut copain",
                   isDumb: true
                });
                


                Et c'est la bonne facon de faire pour ce genre de fonction avec beacoup de parametres possibles. Il l'a juste pas expliquer.
                • Partager sur Facebook
                • Partager sur Twitter
                  6 janvier 2009 à 1:31:23

                  Ok. Je m'y essaierai un de ces quatre alors. ^^ Pour ma question plus orientée PHP, je vais aller la poser là où il faut. :)

                  Merci pour vos réponses.
                  • Partager sur Facebook
                  • Partager sur Twitter
                    6 janvier 2009 à 18:44:00

                    Au temps pour moi, voila comment les différents arguments que l'on peut envoyer :
                    - url: l'url du fichier à atteindre
                    - method : la méthode d'envoi à utiliser (POST ou GET)
                    - asynchrone : true ou false pour que la requête se passe respectivement en mode asynchrone ou en mode synchrone
                    - parametres : des paramètres à envoyer en utilisant la méthode POST
                    - callback : la fonction de callback à appeler lorsque la réponse est arrivé, il faut que la fonction est comme premier argument la réponse de la requête
                    - paramCallback : on peut éventuellement envoyer un argument à la fonction de callback en plus de la réponse de la requête, l'argument sera situé en deuxième position (derrière la réponse de la requête)
                    Et comme l'a dit nod_, pour appeler la fonction, on utilise un argument objet :
                    requeteAJAX({
                       parametre1:"value",
                       parametre2:"value",
                       dernierParametre:"value" //Pas de virgule
                    });
                    
                    • Partager sur Facebook
                    • Partager sur Twitter

                    Fonction générale pour Ajax

                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                    • Editeur
                    • Markdown