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

Services Web Discussion :

Service Web WCF REST JSON et firefox


Sujet :

Services Web

  1. #1
    Membre confirmé Avatar de FraktaL
    Profil pro
    Inscrit en
    Août 2003
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2003
    Messages : 110
    Par défaut Service Web WCF REST JSON et firefox
    Bonjour à tous,

    J'ai créé un service WCF et j'essaye de faire des requetes via javascript. Si cela fonctionne parfaitement sous IE, cela n'est pas le cas sous firefox. Ma méthode recoit bien un status de 200 sous IE tandis que sous firefox le status reste à 0 et le ResponseText est vide.

    Vous connaissez un problème de compatibilité entre firefox et les services WCF REST?

    Et dans ce cas savez vous comment le résoudre?

    Merci d'avance.

    Frak

  2. #2
    Invité
    Invité(e)
    Par défaut
    Peux-t-on voir la partie du code javascript que tu utilises ? Parce qu'au cas où tu ne le saurais pas il me semble qu'il y a certains objets comme ActiveXObject qui ne sont pas supportés par FireFox. Pour l'exemple précédent il faut XMLHttpRequest sous FireFox.

  3. #3
    Membre confirmé Avatar de FraktaL
    Profil pro
    Inscrit en
    Août 2003
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2003
    Messages : 110
    Par défaut
    Bien sur, j'aurais du être plus complet dans mes explications.

    J'utilise en effet des objets différents selon que le client utilise Firefox ou IE:
    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
        var xmlhttp = false;
     
        if (window.XMLHttpRequest) 
        {
          //Firefox ou IE >= 7.0
          xmlhttp = new XMLHttpRequest();
        }
        else if (window.ActiveXObject) 
        {
          try 
          { 
            xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
          } 
          catch (e) 
          {
             try 
             { 
                xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
             } 
             catch (e) 
             {
                xmlhttp = false;
                window.alert("Votre navigateur ne prend pas en charge l'objet XMLHTTPRequest.");
             }
          } 
        }
    Le problème ne se situe donc pas là. Mon appel se fait comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        xmlget.open("GET", "http://localhost:3315/Service1.svc/items/1", true);
    	xmlget.setRequestHeader("Content-type", "text/xml");
        xmlget.send(null); //envoie de la requête
    Lorsque l'évènement onreadystatechange est déclenché, je récupère le ResponseText si readystate = 4 et que le status est à 200 (OK).

    Dans les deux cas, Firefox et IE je reçois bien le même nombre d'évènements. La diférence est que le status reste à 0 pour Firefox alors qu'il est à 200 pour IE. Firebug m'affiche quand même une erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NS_ERROR_FAILURE: Failure
    Mais je ne suis pas certain que cela soit pertinent.

    Il y a t'il une limitation connue à propos de firefox et les services REST/JSon?

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par FraktaL Voir le message
    NS_ERROR_FAILURE: Failure
    OUi. Cette information n'aide pas du tout. J'utiliserai Fiddler pour sniffer le contenu envoyé/reçu par FireFox.

    Citation Envoyé par FraktaL Voir le message
    Il y a t'il une limitation connue à propos de firefox et les services REST/JSon?
    Je n'en connais pas mais peut-être qu'il en existe.

  5. #5
    Rédacteur
    Avatar de The_badger_man
    Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2005
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 745
    Par défaut
    Peut-être un rapport avec les requêtes cross-domain. Ta page web et ton service sont-ils hébergés sur le même domain ?

    Par défaut et pour des raisons de sécurité les appels JavaScript vers des sites sur des domaines différents sont interdits.
    Les règles du forum
    Le trio magique : FAQ + Cours + fonction rechercher
    Mes articles
    Pas de questions par messages privés svp

    Software is never finished, only abandoned.

  6. #6
    Membre émérite
    Homme Profil pro
    Développeur / architecte
    Inscrit en
    Juillet 2009
    Messages
    473
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur / architecte

    Informations forums :
    Inscription : Juillet 2009
    Messages : 473
    Par défaut
    Je trouve que c'est dangereux de taper "si bas" sachant qu'il y a plein de libraries qui t'abstraient toute cette couche spécifique aux différents navigateurs... Je pense entre autres à jQuery qui est qd même un grd standard maintenant... J'utiliserai par exemple $.ajax

  7. #7
    Membre confirmé Avatar de FraktaL
    Profil pro
    Inscrit en
    Août 2003
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2003
    Messages : 110
    Par défaut
    Peut-être un rapport avec les requêtes cross-domain. Ta page web et ton service sont-ils hébergés sur le même domain ?
    Non ce n'est pas une application cross-domain; pour l'instant je teste tout en localhost.

    J'ai aussi créé une appli avec ton tuto sur les Service REST: Introduction aux services web REST avec WCF 3.5 et j'ai exactement le même soucis.

    J'ai utilisé le module client REST de firefox et tout fonctionne normalement. Peut être qu'il faut regarder du côté du Web.Config que voici:
    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
    <?xml version="1.0"?>
    <configuration>
     
      <system.web>
        <compilation debug="true" targetFramework="4.0" />
      </system.web>
      <system.serviceModel>
        <services>
          <service name="WcfService1.Service1">
            <endpoint address=""
            binding="webHttpBinding"
            contract="WcfService1.IService1"
            behaviorConfiguration="BoxOfficeREST.FilmsBehavior"/>
          </service>
        </services>
        <behaviors>
          <endpointBehaviors>
            <behavior name="BoxOfficeREST.FilmsBehavior">
              <webHttp/>
            </behavior>
          </endpointBehaviors>
        </behaviors>
      </system.serviceModel>
      <system.webServer>
        <modules runAllManagedModulesForAllRequests="true"/>
      </system.webServer>
    </configuration>
    Je trouve que c'est dangereux de taper "si bas" sachant qu'il y a plein de libraries qui t'abstraient toute cette couche spécifique aux différents navigateurs... Je pense entre autres à jQuery qui est qd même un grd standard maintenant... J'utiliserai par exemple $.ajax
    Je suis d'accord avec toi mais le problème de ces librairies, c'est que tu n'as plus de connaissance métier. Tu te repose dessus, plus besoin d'apprendre comment cela fonctionne en dessous mais le jour où tu dois changer des détails coté serveur ou que simplement ce genre de librairie ne correspond plus à tes besoins, tu es perdu; de plus elles sont souvent difficile à modifier. J'ajouterais également que tu deviens dépendant de ce code, code dont tu n'utilise qu'une infime partie. On parle de développement Web et j'ai du mal à comprendre pourquoi je fais télécharger un framework d'une centaine de Ko à un client.

    Cela dit, ta remarque est pertinente mais en tant que développeur j'ai besoin d'apprendre et de comprendre les mécanismes. Actuellement on perd la vraie conaissance et on s'en remet beaucoup à des frameworks tout fait. Cela se traduit souvent par des pertes de performances et des bugs de code qu'on ne maitrise pas. Enfin c'est mon point de vue.

    Je préfère donc comprendre pourquoi cela ne fonctionne pas.

  8. #8
    Membre Expert
    Avatar de Pongten
    Homme Profil pro
    IT Analyst & Software Developer
    Inscrit en
    Juin 2002
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Analyst & Software Developer
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 173
    Par défaut
    Bonjour,

    Que donne le log côté serveur web (si tu utilises IIS[express])?

  9. #9
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 4
    Par défaut Appel de services Web WCF à partir de JavaScript
    Bonsoir;
    comme vous avez réussi a appeler WCF avec javascript.
    je suis entrain de développer une application Mobile phonegap qui communique a une base de donnée sql Server via WCF.

    merci d'avance.

Discussions similaires

  1. [JSON] Paramètre Service Web JAX-REST exception
    Par Cédric B. dans le forum Services Web
    Réponses: 1
    Dernier message: 10/06/2013, 10h33
  2. Sencha touche consommer une service WCF Rest JSON
    Par aymen8219 dans le forum Ext JS / Sencha
    Réponses: 1
    Dernier message: 23/02/2013, 20h31
  3. Déploiement services web, wcf, RIA
    Par Arno_94 dans le forum Services Web
    Réponses: 4
    Dernier message: 19/06/2010, 14h50
  4. List<> et service web WCF
    Par Finality dans le forum Windows Communication Foundation
    Réponses: 3
    Dernier message: 11/06/2010, 12h02
  5. Creation services web adapté - Rest
    Par knebhi dans le forum REST
    Réponses: 0
    Dernier message: 28/05/2010, 17h17

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