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 :

Erreur 404 : script fonctionne sur IE8 et pas sur firefox


Sujet :

JavaScript

  1. #1
    Membre très actif
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    422
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2004
    Messages : 422
    Par défaut Erreur 404 : script fonctionne sur IE8 et pas sur firefox
    Bonjour,

    Je suis en développement d'un ptit code juste pour tester un web service sur l'intranet de l'entreprise. C'est écrit en html/javascript sur mon c:\temp.

    Si j'éxécute le script ci-dessous sur IE8, çà fonctionne. Avec Firefox ou sur chrome çà ne marche plus.

    Pourquoi ?

    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
     
    <html>
    <head>
        <title>SOAP JavaScript Client Test</title>
        <script type="text/javascript">
            // convert a text to an xml object
            function loadXMLString(txt) {                
                if (window.DOMParser) {                
                    parser=new DOMParser();
                    xmlDoc=parser.parseFromString(txt,"text/xml");
                }
                else { // code for IE                            
                    xmlDoc=new ActiveXObject("Microsoft.XMLDOM");                
                    xmlDoc.async=false;
                    xmlDoc.loadXML(txt);
                }
                return xmlDoc;
            }
     
            function parsemyxml(piv_xml) {                    
                var xmlDoc=loadXMLString(piv_xml);            
     
                var n=xmlDoc.getElementsByTagName('ns0:node');
     
                for (i=0;i<n.length;i++) {
                    document.write(n[i].getAttribute('IUID')); document.write(" ");
                    document.write(n[i].getAttribute('nodeType')); document.write(" ");
                    document.write(n[i].getAttribute('fitiName')); document.write(" ");
                    document.write(n[i].getAttribute('valency')); document.write("<br>");
                } 
            }    
     
            function soap() {
                var xmlhttp = new XMLHttpRequest();
                var wsUrl = 'http://ifliaiaplv002:9004/WS/intfgetDataMDM-service.serviceagent/intfwsgetDataMDMEndpoint0';    
     
                xmlhttp.open('POST', wsUrl, true);
     
                // build SOAP request
                var sIUID=document.getElementById("html_input_iuid").value;            
                var soapRequest ='<?xml version="1.0" encoding="utf-8"?>' + '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:inp="http://www.tibco.com/schemas/POC/Resources/XSD/inParamNode.xsd"><soapenv:Header/><soapenv:Body><inp:input><inp:IUID>'+sIUID+'</inp:IUID></inp:input></soapenv:Body></soapenv:Envelope>';            
     
                xmlhttp.onreadystatechange = function () {
                    if (xmlhttp.readyState == 4) {
                        if (xmlhttp.status == 200) {
     
                            //alert('done use firebug to see response');
                            // alert(xmlhttp.responseText);
                            if( xmlhttp.responseText ) {
                                parsemyxml(xmlhttp.responseText);
                            }
                        }
                    }
                }
                // Send the POST request            
                xmlhttp.setRequestHeader("SOAPAction", "/WS/intfgetDataMDM-service.serviceagent//GetNodesOp");
                xmlhttp.setRequestHeader("Content-Type", "text/xml;charset=\"utf-8\"");
                xmlhttp.setRequestHeader("Style", "Document");
                xmlhttp.setRequestHeader("Type", "Request-Response");
     
                xmlhttp.send(soapRequest);
            }        
        </script>
    </head>
     
    <body>
        <form name="Demo" action="" method="post">
        Switch - external ref codes:
        <input id="html_input_iuid" type="text" value="1342"/><br>
            <div>
                <input type="button" value="Soap" onclick="soap();" /><br>
            </div>
        </form>
    </body>
    <html>
    Lors de son exécution Firefox retourne l'erreur : 404 not found

    De plus, si j’exécute le script avec firefox en mode tab IE, çà fonctionne.

    A quoi est du le problème ?
    Pourquoi firefox ne trouve pas le serveur : http://ifliaiaplv002:9004/ ?
    Et pourquoi IE8 trouve sans problème mon serveur ?

    Que faut-il faire pour que firefox et chrome accepte ce serveur ?

    Je suis vraiment bloqué, pouvez-vous m'aider svp ?

    Bien à vous.

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    (⌐■_■)--︻╦╤─ - - -
    Inscrit en
    Avril 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : (⌐■_■)--︻╦╤─ - - -

    Informations forums :
    Inscription : Avril 2014
    Messages : 7
    Par défaut 2 //
    Est-ce que c'est bien normal qu'il y ait deux // au lieu d'un seul ? À la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xmlhttp.setRequestHeader("SOAPAction", "/WS/intfgetDataMDM-service.serviceagent//GetNodesOp");

  3. #3
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut
    normal cross site scripting interdit

    un script sur un domaine ne peu pas invoquer une requête XHR sur un autre
    FireFox considère à raison que File://C|temp n'est pas le même domaine que http://ifliaiaplv002:9004/

    si cela était autorisé n'importe qui pourrait véroler n'importe quelle machine.

    A+JYT

  4. #4
    Membre très actif
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    422
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2004
    Messages : 422
    Par défaut
    Pourquoi mon IE8 exécute sans problème mon script ?
    Pourquoi mes 2 browsers ne fonctionne pas de la même façon ?

    C'est le même script, au même endroit et questionne le même serveur.

  5. #5
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut
    IE à toujours été un trou pour la sécurité

    si tous les navigateurs étaient identiques il n'y en aurait plus qu'un seul
    A+JYT

  6. #6
    Expert confirmé
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 094
    Par défaut
    C'est IE8 qui fait exception ici en autorisant l'accès au Net depuis un fichier local. Essaye avec des versions récentes de Firefox, Google Chrome, Opera, etc. et tu verras qu'aucun ne l'autorise.

    La solution est d'utiliser un serveur local, d'accéder au fichier par http://localhost ou http://127.0.0.1, et le script serveur fera transiter les requêtes en utilisant par exemple cURL.
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  7. #7
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    À noter que l'erreur n'est pas du tout un 404 not found. Les 200, 404 et trucs de ce genre sont des codes d'erreur HTTP. Qu'il n'est d'ailleurs possible d'avoir qu'en réponse de la part du serveur, après l'avoir trouvé et lui avoir envoyé une requête.

    Ici l'erreur est de sécurité JavaScript. En mode asynchrone elle donne peu d'indication sur le pourquoi du comment.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. setTimeout() ne fonctionne pas sur IE8
    Par realwail dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 07/09/2012, 08h43
  2. Un script qui fonctionne sur IE et pas sur FF
    Par zooffy dans le forum Général JavaScript
    Réponses: 22
    Dernier message: 04/12/2010, 17h44
  3. Script fonctionnant sur Mozilla mais pas sur IE !!!
    Par guigui48 dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 19/02/2010, 11h43
  4. [XMLHttpRequest] Pourquoi ce code fonctionne sous IE8 et pas sur Firexox 3.0.11
    Par homeostasie dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 23/07/2009, 14h50
  5. code qui fonctionne en local et pas sur le net
    Par vraipolite dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/08/2005, 10h10

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