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 :

[AJAX] requête sur fichier.xml => erreur 405 sous IE !


Sujet :

JavaScript

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2007
    Messages : 247
    Points : 276
    Points
    276
    Par défaut [AJAX] requête sur fichier.xml => erreur 405 sous IE !
    Bonjour à tous,

    je crois que tout est dit dans le titre, si ce n'est que le message d'erreur correspondant au code 405 est du genre : "La methode POST demandée pour l'URL 'fichier.xml' n'est pas autorisée" - sauf que j'utilise une méthode GET !?

    cette erreur n'apparait que sous IE et ceux quelle que soit le response utilisé (responseText et responseXML) !

    en revanche, si je crée mon fichier XML via un script php, là je n'ai pas de problème pour récupérer mon fichier...

    quelqu'un a-t-il une idée ??

    merci

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2007
    Messages : 247
    Points : 276
    Points
    276
    Par défaut Up ;)
    up up

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2007
    Messages : 247
    Points : 276
    Points
    276
    Par défaut
    bsr,

    voici les codes en question...

    mon fichier xml statique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <!DOCTYPE reponse SYSTEM "http://mda.jvprod.fr/dtd/xml.dtd">
    
    <reponse>
    	<main>un bout de texte ici...</main>
    </reponse>
    avec son dtd :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <!ELEMENT reponse (main|log)>
    <!ELEMENT main (#PCDATA)>
    <!ELEMENT log (#PCDATA)>
    les fonctions AJAX :
    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
    //DEBUT SCRIPT AJAX
    function Requete(){ //définition de la classe
    	if(window.ActiveXObject) return new ActiveXObject('Microsoft.XMLHTTP');
    	if(window.XMLHttpRequest) return new XMLHttpRequest();
    	else alert('Votre Navigateur ne prend pas en charge la technologie AJAX ! Utilisez Firefox -ou IE- pour visiter ce site...');
    	}
     
    function Answer(requete){
    	if(requete.readyState == 4){
    		if(requete.status == 200){
    			var XMLData = requete.responseXML;
     
    			//DEBUT PARSER XML
    			var rep = XMLData.getElementsByTagName("reponse");
     
    			for(h=0;h<rep.length;h++){
    				var zone = rep.item(h).childNodes;
     
    				for(i=0;i<zone.length;i++){
    					var calque = zone.item(i).nodeName;
    					var infos = zone.item(i).childNodes;
     
    					for(j=0;j<infos.length;j++){
    						var msg = infos.item(j).nodeValue;
    						document.getElementById(calque).innerHTML = msg;
    						}
    					}
    				}
    			//FIN PARSER XML
    			}
    		else document.getElementById("AjaxStatus").innerHTML = "Une erreur [code : "+requete.status+"] est survenue...";
    		window.status = "Terminé";
    		}
    	else if(requete.readyState < 4){
    		window.status = "Chargement en cours... "+(requete.readyState*25)+"%";
    		}
    	}
     
    function Ask(fichier,methode,donnees){ //script de requete AJAX
    	var requete = false;
    	var requete = new Requete();
     
    	requete.open('GET',''+fichier+'',true);
     
    	if(methode == "POST") requete.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
     
    	requete.onreadystatechange = function(){ Answer(requete);}
     
    	requete.send(donnees);
    	}
    //FIN SCRIPT AJAX
    et la requete :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Ask('todolist.xml','GET','null');
    si vous trouver le pourquoi de cette erreur 405 sous IE...

    merci ;-)

  4. #4
    Invité
    Invité(e)
    Par défaut
    Pourrais-tu juste mettre les balises de code pour plus de clareté ?
    As-tu essayé d'ouvrir directement le fichier xml dans IE avec Fichier->Ouvrir->Parcourir ? Sincèrement c'est comme ça que j'ai repéré le problème de charset dans mon xml. A l'ouverture c'était OK sous FF mais pas OK sous IE. J'ai modifié mon xml jusqu'à ce qu'il soit "ouvrable" sous IE.

    webrider

  5. #5
    Invité
    Invité(e)
    Par défaut
    J'ai essayé d'ouvrir ton xml dans IE et voici la réponse :

    Le système ne trouve pas l'objet spécifié. Erreur de traitement de la ressource http://mda.jvprod.fr/dtd/xml.dtd.
    L'erreur vient donc du fait que IE ne trouve pas ton dtd. J'ai créé le même dtd que toi mais en local (même répertoire) et son appel :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <!DOCTYPE reponse SYSTEM "xml.dtd">
    Et ça passe sous IE.

    webrider

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2007
    Messages : 247
    Points : 276
    Points
    276
    Par défaut
    salut,

    oui effectivement, ces jours-ci j'ai un soucis sur mon serveur donc il est normal que tu ne puisses pas ouvrir le fichier directement ni trouver le dtd... cela dit, en tapant dans ma barre d'adresse l'url direct du fichier xml, celui-ci s'ouvrait normalement aussi bien sous IE que sous FF... c'est pour ça que je comprends encore moins... d'autant quand le générant via PHP, sans rien modifier, le fichier est parsé correctement...

    PS : j'édit le post précédent pour ne laisser que les noeuds de mon xml...

  7. #7
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par jeje13009
    PS : j'édit le post précédent pour ne laisser que les noeuds de mon xml...
    Je ne voulais pas dire ça mais d'utiliser l'option dans la barre d'outil (#) qui permet de mettre le code dans une fenêtre séparée c'est plus facile et agréable à lire.

    Pour ce qui est de ton problème, as-tu déjà essayé de retirer la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(methode == "POST") requete.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    pour voir si l'erreur te parlait toujours de POST?

  8. #8
    Membre actif
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2007
    Messages : 247
    Points : 276
    Points
    276
    Par défaut
    re,

    dsl je n'avais pas compris, dc nouvel edit pour répondre à ta requête

    pour ce qui est de la ligne if(methode == "POST")..., oui j'ai essayé sans et toujours même résultat...

    pour ce qui est du serveur, il devrait refonctionner d'ici ce soir, si des fois tu veux tester en ligne...

    merci

  9. #9
    En attente de confirmation mail

    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2003
    Messages
    253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2003
    Messages : 253
    Points : 637
    Points
    637
    Par défaut
    Peut-être essayer de changer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Ask('todolist.xml','GET','null');
    Par:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Ask('todolist.xml','GET',null);
    Dans le premier cas tu lui envoie une chaine de caractère, peut-être que IE force le mode POST vu qu'il a un argument non null passé dans sa méthode send...

  10. #10
    Membre actif
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2007
    Messages : 247
    Points : 276
    Points
    276
    Par défaut
    Bien vu l'aveugle !! et surtout grand merci !

    c'est le genre de connerie qui passent à l'As mais qui font bien ch***

    c'était donc bien le 'null' à modifier en null tout simplement

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

Discussions similaires

  1. Requête sur fichier XML avec liaison de données
    Par lpyann dans le forum XML/XSL et SOAP
    Réponses: 8
    Dernier message: 14/08/2014, 21h44
  2. [XL-2003] requêtes sur fichier fermé sous conditions
    Par mickisa dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 19/11/2013, 15h58
  3. Réponses: 2
    Dernier message: 19/01/2012, 21h55
  4. Réponses: 4
    Dernier message: 27/02/2010, 22h04
  5. Requête sur fichier XML
    Par migutz dans le forum VB.NET
    Réponses: 1
    Dernier message: 09/11/2007, 15h34

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