IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

jQuery Discussion :

Appel AJAX en JQuery


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 21
    Par défaut Appel AJAX en JQuery
    Bonjour a tous,

    Je suis sur un petit souci avec Jquery. Je suis une fervent de Prototype mais, je travail avec des développeurs qui utilisent JQuery donc je vais être obligé de m'y mettre aussi

    Voici mon souci, je cherche à écrire un appel AJAX qui va interroger un agent qui format une réponse html. J'utilise le code suivant en javascritp :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    function GoRechercheAnnuaire(start){
    	var CompteArebours = new Date();
     
    	annuaire_text = $('#annuaire_text').val();
    	annuaire_critere = $('#annuaire_critere').val();
     
    	//Construcution de l'appel AJAX
    	request = 'http://localhost/offi.nsf/GoRechercheAnnuaire?OpenAgent&annuaire_text='+annuaire_text
    	+'&annuaire_critere='+annuaire_critere+'&start='+start
    	+'&time=' + CompteArebours.getSeconds();
     
    	$.ajax({
    		type: "GET",
    		url: request,
    		dataType: "html",
    		beforeSend:function(){
    			$('#acc_content').css('textAlign' , 'center');
    			$('#acc_content').html('<img src="images/interface/ajax-loader.gif">');
    		},
    		error:function(){
    			$('#acc_content').css('textAlign' ,'left');
    			$('#acc_content').html('<ERREUR de traitement>');
    		},
    		success:function(data){
    			//affiche le contenu du fichier dans le conteneur dédié
    			$('#acc_content').css('textAlign' ,'left');
    			$('#acc_content').html(data);
    		}
    	});
     
    }
    Le problème est multiple...
    D'une part Le code ne réagi pas de façon équivalente entre IE et FireFox.
    Tout semble fonctionner sur IE et Firefox ne capte pas le retour de "data"

    Cela va même plus loin puisque avec firebug je ne voie même pas la requet "get" passer ce qui me parait tout à fait étrange!!!

    Ce qui est gênant puisque je ne peux pas valider le code retournée par la requet.

    Si quelqu'un a une idée je suis preneur!!!
    Par avance merci.

  2. #2
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut
    Bonjour.

    Je ne sais pas si c'est « le problème », mais vous construisez un « request» alors qu'ajax attend plutôt (exemple) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $.ajax({
       type: "POST",
       url: "some.php",
       data: "name=John&location=Boston",
       success: function(msg){
         alert( "Data Saved: " + msg );
       }
     });
    Voir : http://docs.jquery.com/Ajax/jQuery.ajax#options

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 21
    Par défaut
    Citation Envoyé par danielhagnoul Voir le message
    Bonjour.

    Je ne sais pas si c'est « le problème », mais vous construisez un « request» alors qu'ajax attend plutôt (exemple) :
    Il attend une page à interroger, pour ma part la page est un agent de traitement qui renvoi un page web donc pas de souci juste je fabrique mon appel de façon dynamique pour que ce soir lisible.

    Donc non je ne pense pas que ce soit le souci, d'autant que sous IE, le problème n'existe pas il envoi bine la requête et reçoit le résultat convenablement...

    Si ça peut aider si je renvoi dans ma sortie sur le success pas data mais un text brut type 'coucou' ça fonctionne très bien!!!!

    donc la requête part, revient semble-t-il mai je ne peux capter le flux de donner pour l'afficher...

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 21
    Par défaut
    Je me permet de relancer le sujet parce que là je peine franchement!!!

    J'ai écrit mon code avec prototype et ça fonctionne...

    J'ai essayer différente choses avec JQuery et pour le moment je tourne en rond.
    Je sais que l'appel à ma page extérieur fonctionne puis que le résultat de la page s'affiche convenablement lorsque je fais l'appel avec prototype.

    En revanche avec JQuery la requête est semble-t-il bien transmise mais impossible de lire le résultat...

    J'ai testé en mettant une requête en "POST", même si je ne voie pas l'utilité puisque je veux lire une page HTML donc le "GET" me semble plus approprié!!!!
    Résultat sensiblement différent il me recharge la page d'origine sans prendre en compte la page de retour que je génère!!!

    Je suis preneur de toutes les idées.... Merci

    Je remet le code de mon appel javascript au cas ou puisque je l'ai changé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    function GoRechercheAnnuaire(annu_text , annu_critere , nb_start){
     
    	var col_g_txt  = 	'<div id="col_gauche"><div><img alt="" class="float_left" src="images/interface/tetieres_coin_gauche1.gif" /><h2 class="tetiere4">Annuaire</h2></div><div id="autres_annu"><h4 class="droite couleur03">communaut&eacute;</h4>Vous pouvez &eacute;galement, sous Lotus, consulter les annuaires suivants :<br /><a href="#" class="js_lien_externe">Annuaire Aramice</a><br /><a href="#" class="js_lien_externe">Annuaire Audiens</a><br /><a href="#" class="js_lien_externe">Annuaire Novalis-Taitbout</a></div><div id="col_gauche_site"></div></div>';
     
    	$('#acc_content').html(col_g_txt + '<div id="col_centrale"></div>');
     
    	var CompteArebours = new Date();
     
    	//Construcution de l'appel AJAX
    	request = 'http://vpa1ddoe1/test/W3/offi.nsf/GoRechercheAnnuaire?OpenAgent&annuaire_text='+annuaire_text
    	+'&annuaire_critere='+annuaire_critere+'&start='+nb_start+'&time=' + CompteArebours.getSeconds();
     
     
    	$.ajax({
    		type: 'get',
    		url: request,
    		dataType: 'html',
    		beforeSend:function(){
    			$('#col_centrale').html('<h1>Recherche en cours</h1><img src="images/interface/ajax-loader.gif">');
    		},
    		error:function(){
    			$('#col_centrale').html('<ERREUR de traitement>');
    		},
    		success:function(data){
    			//affiche le contenu du fichier dans le conteneur dédié
    			$('#col_centrale').html(data);
    		}
      });
    }

  5. #5
    Membre chevronné Avatar de rberthou
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    612
    Détails du profil
    Informations personnelles :
    Âge : 61
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 612
    Par défaut
    Personnelement je dirais un truc du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    	var requestURL = 'http://vpa1ddoe1/test/W3/offi.nsf/GoRechercheAnnuaire' ;
     
    jQuery.ajax({
    	type: "POST",
    	url: requestURL,
    	cache: false,
    	data: ({OpenAgent: '',
    		  annuaire_text: annuaire_text,
    		  annuaire_critere: annuaire_critere,
    		  start: nb_start,
    		  time: CompteArebours.getSeconds()
    		}),
    	dataType: "html",
    	beforeSend:function(){
    			$('#col_centrale').html('<h1>Recherche en cours</h1><img src="images/interface/ajax-loader.gif">');
    		},
    	error:function(){
    alert("error") ;
    		$('#col_centrale').html('<ERREUR de traitement>');
    	},
    	success:function(data){
    alert("succes : " + data) ;
    		//affiche le contenu du fichier dans le conteneur dédié
    		$('#col_centrale').html(data);
    	}
    });
    PS : verifie aussi si tout ce passe bien dans ton agent Notes (j'ai souvent eu des problèmes avec cela)

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 21
    Par défaut
    Merci je test ça tout de suite...

    Du coté agent Notes tout est ok en appel via Prototype il passe bien et en appel manuel de l'adresse il répond correctement....

    Je te tiens au courant sur le test.

    Ok, je viens de tester alors j'ai deux phénomènes...
    1. La requête part semble-t-il et elle revient bien dans le alert avec un problème d'argument, que je vais trouver je ne sais pas si c'est notes ou javascript encore...
      Ok donc le souci est que le Querystring qui arrive sous Notes est Vide!!!
    2. Une fois le alert passé les data ne sont pas insérés dans le $('#col_centrale').html(data)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AJAX] Appel AJAX .load() jquery ne fonctionne qu'une seule fois
    Par ThomasF dans le forum jQuery
    Réponses: 4
    Dernier message: 11/01/2015, 12h08
  2. Imprimer le résultat d'un appel Ajax avec jQuery
    Par redah75 dans le forum jQuery
    Réponses: 5
    Dernier message: 14/05/2012, 09h03
  3. Appel Ajax avec jQuery : $.ajax is not a function
    Par Grulf dans le forum jQuery
    Réponses: 2
    Dernier message: 18/02/2011, 11h47
  4. [AJAX] Appel de fichier avec Ajax et jQuery
    Par Floco dans le forum AJAX
    Réponses: 14
    Dernier message: 09/04/2010, 23h43
  5. 2 appels $.ajax avec jQuery
    Par Sam457 dans le forum jQuery
    Réponses: 4
    Dernier message: 26/11/2009, 23h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo