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
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.
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);
Un peu d'aide serait vraiment la bienvenue.
Merci
Partager