Forums : Xul, Xbl, JS...

Aller à la discussion :  Plus récente Plus ancienne

# problème pour récuperer le contenu d'une XMLHttpRequest

Envoyé par : Bibou

Date : 01/12/2006 00:18

Bonjour, je suis en train de développer une extension pour disposer d'un msn intégré à Firefox.

Néanmoins j'ai un souci à 2 endroits différents mais le souci est le meme, c'est a dire quand je veux récuperer les infos renvoyées par le serveur. En effet je n'arrive pas à récuperer les données qu'il me renvoie.

exemple :

var xhr_object = new XMLHttpRequest(); 
//connexion https au serveur nexus
xhr_object.open("GET","https://nexus.passport.com/rdr/pprdr.asp",  true); 
xhr_object.send(null);
xhr_object.onreadystatechange = function() { 
//a ce moment je veux recuperer l'adresse que me renvoie nexus mais  quoi que je fasse je n'ai rien de satisfaisant. En théorie je devrais recevoir en retour une adresse d'un serveur msn
if(xhr_object.readyState == 4) 
{
alert("status text" + xhr_object.statusText);
alert("status" + xhr_object.status);
alert("reponse texte" + xhr_object.responseText); 
alert("reponse body" +xhr_object.responseStream);
alert("reponse xml" +xhr_object.responseXML);
alert("reponse header" +xhr_object.getResponseHeader);
alert("toute reponse header" +xhr_object.getAllResponseHeaders);
//rien de concret dans toutes ces reponses a part que la requete    s'est bien effectuée (statut texte et status)
  }
}

L'autre souci est de faire la meme chose mais en rajoutant des parametres à ma xmlhttprequest. Voici le bout de code C# que je voudrais reproduire, il s'agit de parametres pour la connexion à "http://login.live.com/login2.srf":

ServerRequest.Headers.Add("Authorization", "Passport1.4  OrgVerb=GET,OrgURL=http%3A%2F%2Fmessenger%2Emsn%2Ecom,sign-in=" + Username.Replace("@", "%40") + ",pwd=" + Password + "," + ChallengeString + "\n");

J'ai tenté diverses manipulations de mon xmlhttprequest pour les reproduire mais je n'ai rien obtenu de significatif.

J'espère avoir été assez précis dans la description de mon problème pour que quelqu'un puisse m'aider :)

# Re: problème pour récuperer le contenu d'une XMLHttpRequest

Envoyé par : papy

Date : 01/12/2006 09:53

En ce qui concerne l'ajout de paramètres, ca n'est pas très compliqué, il suffit de les rajouter à l'url (car tu utilises la méthodes GET, en POST ca se passe différemment)

xhr_object.open("GET","https://nexus.passport.com/rdr/pprdr.asp?login=coucou&passwd=salut",  true); 

Si tes paramètres contiennent des caractères spéciaux utilise la fonction encodeURI avant d'ajouter ca à ton URL

En ce qui concerne la réponse, elle est contenu dans responseText ou responseXML (si le mime type renvoyé par le serveur est xml), donc tu devrais l'avoir. Essai d'utiliser dump à la place d'alert, on ne sait jamais... Sinon ca peut venir d'un problème de ton serveur aussi.

# Re: problème pour récuperer le contenu d'une XMLHttpRequest

Envoyé par : Bibou

Date : 01/12/2006 14:21

En fait j'ai résolu le problèmes pour la 1er partie car la réponse était en fait renvoyé dans le header donc j'ai fait un getResponseHeader(label_header) pour en récupérer le contenu.

Reste le souci de la 2em requete ou je veux reproduire ce que fait ce code C# :

ServerRequest = (HttpWebRequest)HttpWebRequest.Create(https://login.live.com/login2.srf);
ServerRequest.AllowAutoRedirect = false;
ServerRequest.Pipelined = false;
ServerRequest.KeepAlive = false;
ServerRequest.ProtocolVersion = new Version(1,0);
// Send the authentication header
ServerRequest.Headers.Add("Authorization", "Passport1.4 OrgVerb=GET,OrgURL=http%3A%2F%2Fmessenger%2Emsn%2Ecom,sign-in=" + Username.Replace("@", "%40") + ",pwd=" + Password + "," + ChallengeString + "\n");
HttpWebResponse ServerResponse = (HttpWebResponse)ServerRequest.GetResponse();

J ai tenté de le faire de cette facon :

xhr_object2.setRequestHeader("Authorization",'Passport1.4  OrgVerb=GET,OrgURL=http%3A%2F%2Fmessenger%2Emsn%2Ecom,sign-in= '+ Username.Replace("@", "%40") + ',pwd=' + Password + ',' + ChallengeString + '\n'); 
xhr_object2.open("GET", "https://login.live.com/login2.srf",true);
xhr_object2.send("null");

Mais la il renvoie rien, j'ai meme pas l'impression qu'il l execute car le y a pas de changement detat

Faut-il procéder d'une autre manière pour reproduire ce code ?

# Re: problème pour récuperer le contenu d'une XMLHttpRequest

Envoyé par : rande

Date : 01/12/2006 21:27

il faut faire obj.send(false) pour un GET.

 "null" = String
 null = null

Tu peux egalement utiliser un ethereal pour ecouter les communications entre ton browser et le serveur. tu pourras voir a quel niveau ca bloque.

# Re: problème pour récuperer le contenu d'une XMLHttpRequest

Envoyé par : Bibou

Date : 05/12/2006 19:44

En fait ca bloque avant meme l'envoi car il n y a rien qui passe sous ethereal (pas de connexion ssl qui est apparu).

L'exemple du dessus est valide, il suffit juste de remplacer :
username par une adresse au format moi%40hotmail.com
password par une string
params par une autre string

comme les parametres ne sont pas bon le serveur va vous jeter mais au moins on pourrait vérifier si on arrive a s y connecter car la je suis perdu. :/

Il n'est plus possible de poster des messages dans ce forum.


Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.

Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™ sont des marques de la fondation Mozilla.