full-Ajax + prototype + POST

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : full-Ajax + prototype + POST

full-Ajax + prototype + POST

par Nours312 » 23 août 2010, 17:39

Salut!

J'ai développer un site en full Ajax, qui effectue des requêtes récurrentes au serveur, remplace les changement de page par des requêtes Ajax, gère l'envoi des formulaire, ... ... ... en me basant sur Prototype, lib avec laquelle, je n'ai à ce jour constaté aucun soucie.

le soucy est que lorsque l'utilisateur rempli en post un formulaire les "parameters" envoyés en POST restent dans l'Object Ajax ... et sont donc systématiquement posté dans toutes les requêtes suivantes!

Quelqu'un as t il déjà vu ça ?? et auriez vous une piste à me conseiller pour trouver le Bug ? SVP ?

la structure de l'ensemble est dans ce style ::

[javascript]
nav = {};
MyNav = Class.create({
...
...
Request : function(url, options, addHistory){

if (!this.historyRequest && addHistory)
this.addRequestAjax(url, options);

return new Ajax.Request(url, options);
});

// au chargement je déclare :
nav = new MyNav ();

// et pour utiliser ça, j'utilise un autre objet qui va me conditionner les variables à passer en paramètre :

var Load = Class.create({
options : {
parameters:{
ajax:1
}
},
addHistory : true,
initialize : function(href, options, addH){
if(addH == 'notHistory')
this.addHistory = false;
this.options = Object.extend(this.options, options || {});

// appel de mon Object de navigation :

nav.Request(href, {
parameters : Object.extend({
ajax:1
},this.options.parameters),
onComplete:this.callBack.bind(this)
}, this.addHistory);
},
callBack : function(x){
...
}
});


// le tout est utilisé à peux prés de la sorte :

$$('a').invoke('observe', 'click', function(e){
new Load(e.element().href ) ;
} );

[/javascript]

je sais bien que vu comme ça, on pourrait bien raccourcir, mais c'est juste que j'ai synthétisé le comportement Global :D

Merci d'avance de toute l'aide que vous pourriez m'apporter !

@+