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

AJAX Discussion :

[AJAX] Freeze open sur xmlhttprequest en post


Sujet :

AJAX

  1. #1
    Membre averti
    Inscrit en
    Février 2005
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 55
    Par défaut [AJAX] Freeze open sur xmlhttprequest en post
    Bonjour,

    Je developpe actuellement un petit contrôle pour un portail MOSS 2007.
    Le principe de ce contrôle est le suivant.
    Un serveur de messagerie distant développé en Java, héberge pour chaque utilisateur des notifications et des tasks.
    Les gestionnaires de ce gestionnaire de messagerie souhaite que soit affiche un contrôle qui affiche le nombre de taches, et le nombre de notifications de l'utilisateur actuellement connecté sur le portail moss.
    Pour ce faire, j'ai reçu un javascript de l'équipe de dev du serveur de messagerie.
    Ce script permet de se connecter à une page jsp sur le serveur de messagerie et ce jsp me renvoi les info dont j'ai besoin sous forme de texte.
    Une fois le texte reçu, j'ai une fonction qui parse le texte et qui me permet de modifier un div conçu pour afficher mon contrôle.
    L'appel de la page se fait via un POST.
    Le code fonctionne parfaitement sous ie7 mais pas sous ie6 et sous FF.

    Après débug, il s'avère que le code freeze ou niveau du open sur l'objet xmlhttprequest.

    J'aimerais donc savoir ce que je fais mal, et pourquoi cela freeze sous FF et IE6.

    Voici la portion de code chargée de l'ouverture de la connection

    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
    32
    33
    34
    35
    36
     
        xhReq.onreadystatechange = function() {
        	log('onreadystate');
            if (xhReq.readyState != 4)  { 
            	log("Request didn't have readyState value 4, but value "+xhReq.readyState);
            	return; 
            }
            clearTimeout(requestTimer);
            if (xhReq.status != 200)  {
                log('Found a problem during the Ajax call invocation ...');
                //TODO : Add error message or gif?
                return;
            }
    	    var serverResponse = xhReq.responseText;
            log("Notis server answered: "+serverResponse);
             if (serverResponse != null){
    	   		log("Checking the server's response ...");
           		if (serverResponse.match('-1')) {
           		    montre_div(MainDivElement,"false");
    	        	log('server responded with -1 user is invalid');
    	        	//TODO : add some time to the timer to not surcharge the notis server?	        	
           		}
           		else {
     
    		        montre_div(MainDivElement,"true");
    		        parseServerResponse(removeSpaces(serverResponse));   
            	}
            }
        };
        log("Before request open...");
        xhReq.open(notisCountsProtocol, fullService, true);
        log("After request open...");
    	xhReq.setRequestHeader("Content-Length", parameters.length);
    	xhReq.setRequestHeader("Connection", "close");
    	xhReq.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        xhReq.send(parameters);
    Dernière précision, l'url appelée est sur un domaine séparer de l'intranet. Et l'appel se fait via un proxy. Il y a donc une requete cross domain dans cet appel. Peut etre que cela peut venir de là, mais je n'ai pas assez d'expérience en javascript pour pouvoir le determiner.
    Un peu d'aide serait vraiment la bienvenue.

    Merci

  2. #2
    Membre averti
    Inscrit en
    Février 2005
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 55
    Par défaut
    AU final, le problème est résolu. Il s'agit d'un problème propre à FireFox et à son niveau de sécurité sur les cross domain query.
    Il faut en fait signer le script et augmenter les droits d'acces du script au moment de l'open et du read.

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2003
    Messages
    81
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 81
    Par défaut
    Citation Envoyé par blasme Voir le message
    AU final, le problème est résolu. Il s'agit d'un problème propre à FireFox et à son niveau de sécurité sur les cross domain query.
    Il faut en fait signer le script et augmenter les droits d'acces du script au moment de l'open et du read.
    comment faire pour signer le script et augmenter les droits d'acces du script au moment de l'open et du read ?

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

Discussions similaires

  1. [AJAX] AJAX erreur code 0 sur une méthode POST
    Par Batou_37 dans le forum AJAX
    Réponses: 4
    Dernier message: 24/03/2014, 13h29
  2. [AJAX] Ajax et XmlHttpRequest.open
    Par tostaky8 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 16/02/2009, 23h03
  3. [Prototype] XMLHttpRequest open sur un serveur quelconque ?
    Par Neal Morse dans le forum Bibliothèques & Frameworks
    Réponses: 3
    Dernier message: 31/10/2007, 10h42
  4. [AJAX] Récupérer paramètre sur POST dans une servlet
    Par _beber85 dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 05/04/2006, 11h52
  5. probleme d'installation sur d'autres postes
    Par VBkiller dans le forum Composants VCL
    Réponses: 4
    Dernier message: 18/09/2002, 18h14

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