Forums : Xul, Xbl, JS...

Aller à la discussion :  Plus récente Plus ancienne

# [javascript] privilege pour un XMLDocument

Envoyé par : Utilisateur anonyme

Date : 03/05/2005 15:35

Bonjour,

je cherche à parser un fichier xml que je recupere d'un serveur distant. pour cela je recupere un XMLDocument grace au princiupe du XMLHttpRequest. Cependant j'ai une erreur que je ne comprend vraiment pas. il semble que ce soit un probleme de privilege mais dans tout les tutoriaux que j'ai trouvé dans la literature, il n'y avait déjà pas besoin de ma premiere ligne de code (voir plus bas). donc je ne sais aps trop..

voici mon code:

 netscape.security.PrivilegeManager.enablePrivilege('UniversalBrowserRead');
  
   var xhr_object = null;
    // Firefox
   xhr_object = new XMLHttpRequest();

   xhr_object.onreadystatechange = function() {
      
      if(xhr_object.readyState == 4 && xhr_object.status == 200) {
            continuation();             
      }
   }
   xhr_object.open("GET", "http://monserveur/trouc.xml");
   xhr_object.send(null);
  
   function continuation(){
  
       xmldoc = xhr_object.responseXML;
       txt = xmldoc.getElementsByTagName('ServiceProvider').nodeValue;
       alert(txt);
   }

et voici le code d'erreur que j'ai:

Erreur : [Exception... "'Permission refusée d'appeler la méthode  XMLDocument.getElementsByTagName' when calling method:  [nsIOnReadystatechangeHandler::handleEvent]"  nsresult: "0x8057001e (NS_ERROR_XPC_JS_THREW_STRING)"  location: "<unknown>"  data: no]

si jamais vous avez des indications..

merci d'avances de vos réponses

# Re: [javascript] privilege pour un XMLDocument

Envoyé par : T10

Date : 03/05/2005 15:52

Si tu fais

alert(xhr_object.responseText);

tu obtiens quoi? C'est sensé afficher ton flux xml.

# Re: [javascript] privilege pour un XMLDocument

Envoyé par : Utilisateur anonyme

Date : 03/05/2005 16:02

oui ça marche ça mais j'aimerais bien pouvoir recueperer l'objet XMLdocument histoire de pouvoir naviguer dans l'arbre. et lorsque je fais getElementsByTagName bah j'ai une erreur. En fait j'ai une erreur à chaque fois que j'essaye d'executer une méthode de l'objet XMLdocument ou bien d'acceder à un attribut.

# Re: [javascript] privilege pour un XMLDocument

Envoyé par : T10

Date : 03/05/2005 16:11

je viens de voir nu truc je sais pas si ca viens de la mais je crois que y a une erreur dans le code

 txt = xmldoc.getElementsByTagName('ServiceProvider');

retourne une liste donc tu devrais plutot faire

 txt =  xmldoc.getElementsByTagName('ServiceProvider').item(0).nodeValue;

# Re: [javascript] privilege pour un XMLDocument

Envoyé par : Utilisateur anonyme

Date : 03/05/2005 16:19

A priori, je prends je nodeValue donc c bon... et de toute façon j'avais essayé en chopant les items et ça sortait la même erreur, puisque l'erreur dit bien que c'est sur getElementsByTagName qu'il y a un probleme d'acces.

# Re: [javascript] privilege pour un XMLDocument

Envoyé par : Utilisateur anonyme

Date : 04/05/2005 14:04

en fait j'ais d'une autre façon: je recupere le xml sous forme de text dans une chaine puis je le parse afin d'obtenir un objet dom dans lequel je peux choper les elements grace à getElementByTagName ou par Id:

xmldoc = xhr_object.responseText;
var domoc = (new DOMParser()).parseFromString(xmldoc, "text/xml");

# Re: [javascript] privilege pour un XMLDocument

Envoyé par : Utilisateur anonyme

Date : 24/05/2005 09:25

J'ai le mm genre de soucis. D'après ce que j'ai pu lire, cela proviendrait d'un pb de XML mal formé. (pas de tag <?xml...> par exemple). Le parser refuse de lire ton flux pour cette raison.

# Re: [javascript] privilege pour un XMLDocument

Envoyé par : Utilisateur anonyme

Date : 19/01/2006 16:39

Hi,

I don't know french so I'll write in english.

I encountered the same error: permission denied etc. etc.

I think the problem is the privilieges enabled by:

 netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");

only have effect while the function from where you call it is still running. When that function finishes, privileges are lost so you can't use some XMLHttpRequest methods.

The solution is: enable the privileges in continuation() too:

 function continuation() {
   netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
   ...
 }

Hope it helps, Ranma

# Re: [javascript] privilege pour un XMLDocument

Envoyé par : Utilisateur anonyme

Date : 19/01/2006 16:47

By the way, you can assign a function name directly to onreadystatechange property, so so could have done:

 xhr_object.onreadystatechange = continuation;

and change continuation() this way (privileges "patch" included!):

 function continuation(){

   if(xhr_object.readyState == 4 && xhr_object.status == 200) {
 
      // Enable privileges
      netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
 
      xmldoc = xhr_object.responseXML;
      txt = xmldoc.getElementsByTagName('ServiceProvider').nodeValue;
      alert(txt);
    }
  }

# Re: [javascript] privilege pour un XMLDocument

Envoyé par : hhf

Date : 19/01/2006 20:04

heu moi je dis il manque un truc fais ceci et ca marchera :

xmldoc = xhr_object.responseXML.documentElement;

Et la ho miracle ca marche....

En esperant que la ca marche ...LOL

Entre nous, c'est un peu la loose que personne n'est vu l'erreur.

# Re: [javascript] privilege pour un XMLDocument

Envoyé par : Utilisateur anonyme

Date : 06/03/2006 11:29

Petite réponse pour hhf

Entre nous, c'est un peu la loose que personne n'est vu l'erreur

Arréte de te la péter, t'es là pour aider pour pour critiquer!!

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.