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

JavaScript Discussion :

javascript et fichier xml avec FF3.6


Sujet :

JavaScript

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 69
    Par défaut javascript et fichier xml avec FF3.6
    bonjour,

    depuis quelque jours je bloque sur un problème énervant.
    je tente de créé une widget pour windows vista mais je suis confronté a un problème entre javascript et FF3.6 ainsi que d'autre navigateur.

    mon script doit aller chargé un fichier XML.
    le problème c'est qu'une erreur survient et m'indique que je n'ai pas les droits d'accès au fichier !!!
    "Access to restricted URI denied" code: "1012" nsresult: "0x805303f4 (NS_ERROR_DOM_BAD_URI)"

    après une recherche sur le net j'ai découvert que FF3 utilisait une version améliorer de XMLHttpRequest et empêchait le chargement d'un fichier situé sur un domaine autre que son propre domaine. du coup je me retrouve bien embêté !!

    j'ai cru comprendre qu'il fallait utilisé AJAX plus un fichier php ( ou peut être autre ) pour récupéré le fichier mais pour les fichier PHP il faut un interprêteur donc c'est foutu d'avance.

    je voudrait donc savoir s'il existe un moyen de récupérer un fichier XML distant en utilisant javascript ?

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 69
    Par défaut
    bonjour,

    j'ai fais une petite percée dans mon énigme et je ne vois plus d'erreur. par contre je n'arrive toujours pas a récupéré ce foutu fichier XML ... toujours des problèmes avec FF3.5 ...

    je poste déja une partie du code que j'ai fais ca vous aidera peut être a trouvée mon problème.

    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
     
    <script type="text/javascript">
    	var xhr = null;
    	var xdr = null;
    	var path = "http://monde1.avalloc.fr/addons-xrvTF4CCyiCht9lI3X5Ndx5r5MpLcsJsJX36IuxYE0YPYaeIY9";
    	var XmlFile = "";
    //vérifie la version du navigateur et créé un objet XMLHttpRequest ou bien un objet XmlDomainRequest
    	function CreateXMLObject(){
    		//détection de Mozilla Firefox
    		if(navigator.userAgent.indexOf('Firefox') != -1)
    		{
    			if(navigator.userAgent.indexOf('Firefox/3') != -1)
    			{
    				xdr = new XMLHttpRequest();
    				//alert("firefox 3");
    			}else{
    				xhr = new XMLHttpRequest();
    				//alert("firefox 1 ou 2");
    			}
    		//détection de Internet Explorer
    		}else if(navigator.userAgent.indexOf('MSIE') != -1){
    			if(navigator.userAgent.indexOf('MSIE 8') != -1)
    			{
    				xdr = new XDomainRequest();
    				//alert("IE8");
    			}else if(navigator.userAgent.indexOf('MSIE 7') != -1){
    				xhr = new XMLHttpRequest();
    				//alert("IE7");
    			}else{
    				xhr = new ActiveXObject('MSXML2.XMLHTTP.6.0'); 
    				//alert("IE < 7");
    			}
    		}else{
    			alert("vôtre navigateur ne prend pas en compte les objet XMLHttpRequest");
    			return;
    		}
    	}
    //chargement du fichier XML avec un objet XMLHttpRequest
    	function LoadXmlXhr(){
     
    		xhr.onreadystatechange = function (){
    			if(xhr.readyState == 4)
    			{
    				if(xhr.status == 200)
    				{
    					alert(xhr.responseXML);
    				}
    				else
    				{
    					alert("une erreur s'est produite !!");
    				}
    			}
    		}
     
    		xhr.open("GET",path,true);
    		xhr.send(null);
    	}
    // chargement du fichier XML avec un objet XMLDomainRequest
    //pour FF 3.1 et +, l'objet XMLHttpRequest a été réadapté.
    // c'est cette fonction qui coince !!
    	function LoadXmlXdr(){
     
    		xdr.onreadystatechange = function (){
     
    			if(xdr.readyState == 4)
    			{
    				if(xdr.status == 200)
    				{
    					alert(xdr.responseText);
    				}
    				else{
    					alert("une erreur s'est produite !!");
    				}
    			}
    		}
     
    		xdr.open("GET",path);
    		xdr.setRequestHeader("Content-Type","application/xml");
    		xdr.setRequestHeader("Access-Control-Allow-Origin","*");
    		xdr.send(null);
    	}
    //vérifie le type d'objet créé et redirige vers la fonction adéquate
    	CreateXMLObject();
    	if( xhr != null)
    	{
    		alert("un objet XMLHttpRequest a été créé");
    		LoadXmlXhr();
    	}else if (xdr != null){
    		alert("un objet XMLDomainRequest a été créé");
    		LoadXmlXdr();
    	}
    </script>

  3. #3
    Membre expérimenté Avatar de AcidLines
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2010
    Messages
    198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Février 2010
    Messages : 198
    Par défaut
    Tien voilà ce que j'ai réalisé aujourd'hui :

    XML/JAVASCRIPT

    Je pense que tu à moyen de le modifier pour tes besoins, par exemple virer le passage ou je charge la feuille XSL, modifier les url...

    J'espère que sa ira.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 69
    Par défaut
    la version que tu propose est utilisable en local.
    dès lors que tu passe dans un domaine différent du tiens, tu t'attaque pour les version de FF > 3.0 et IE8 au phénomène de Cross Domain qui fonctionne un peu comme le Proxy sauf qu'au lieu d'avoir une redirection vers un site tu interroges directement le domaine en question et il doit accepté ou non ta demande de requête pour récupéré un fichier XML distant.

    j'ai semble t-il trouvé une solution qui consisterai en javascript à créé une balise <script> qui aurait comme attribut src le lien vers le site en question mais apparemment c'est du JSON qui est retourné et non du XML.
    les exemple que j'ai trouvé parlais du système de recherche de Google.
    mais j'ai pas trouvé pour récupéré un fichier XML distant.

    il semblerait que du côté de IE8 il y ait une solution mais pas encore du côté de firefox.

Discussions similaires

  1. Manipulation fichiers XML avec javascript
    Par michelkey dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 04/12/2014, 15h45
  2. Afficher un fichier XML avec fonction JavaScript
    Par nicolas00123 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 19/01/2013, 13h27
  3. charger fichier xml avec du javascript
    Par bilel06 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 05/03/2008, 15h54
  4. Chargement Fichier XML avec javascript
    Par kaptnkill dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 02/10/2007, 14h22
  5. [DOM] [Débutant(e)] Modifier un fichier XML avec DOM
    Par macks dans le forum Format d'échange (XML, JSON...)
    Réponses: 6
    Dernier message: 05/07/2005, 14h13

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