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 :

Webservice WCF et Javascript


Sujet :

Services Web

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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 Webservice WCF et Javascript
    Bonjour à tous,

    J'ai besoin d'aide pour configurer un service WCF afin de pouvoir y accéder via une simple page HTML qui se trouve sur mon disque. Dans cette page j'aurais une ou plusieurs fonctions javascript qui se connecterait au WebService en question via un objet XmlHttpRequest.

    Je ne veux pas faire d'ASP puisque le but est que la page HTML puisse se situer sur un environnement quelconque. Pas de JQuery non plus, car mon script doit être autonome. Pour l'instant je fais mes tests en local et rien ne fonctionne.

    - Quelles sont les technologies à utiliser?
    - Connaissez-vous un tutoriel, éventuellement avec les sources?

    Merci d'avance.

    Sébastien

  2. #2
    Candidat au Club
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Janvier 2013
    Messages : 3
    Par défaut
    J'ai réalisé une WebApplication HTML5 qui consomme des WebServices WCF (REST) en retournant un Flux JSON.

    La configuration WCF est la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <behaviors>
        <endpointBehaviors>
          <behavior name="web">
            <webHttp defaultOutgoingResponseFormat="Json" /> <!-- Important pour communiquer avec une WebApp -->
          </behavior>
    </behaviors>
    <service behaviorConfiguration="ServiceBehaviour" name="Name">
          <endpoint address="" behaviorConfiguration="web" binding="webHttpBinding" contract="IContrat" />
        </service>
    Si tu souhaites communiqué en XML modifie defaultOutgoingResponseFormat="XML".

    Pour plus d'information sur le balise webHttp

  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
    Merci!

    Et du côté javascript tu fais comment?

    Moi j'ai ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    	var xhr = new XMLHttpRequest();
    	xhr.open("GET", "http://localhost:5793/Service1.svc?wsdl", true);
    	xhr.setRequestHeader("Content-type", "application/json");
    	xhr.send(null);

  4. #4
    Candidat au Club
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Janvier 2013
    Messages : 3
    Par défaut
    Tu ne dois pas mettre ?wsdl puisque c'est la description de ton service. Ce qui permet notamment de "proxyfié" ton service.

    Plutôt quelques choses du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
        http://localhost:5793/Service1.svc/MaMethode
    Ensuite au niveau de la déclaration de ton contrat de service, tu peux décorer ton service de la sorte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
            [OperationContract]
            [WebInvoke(Method = "GET"
                , ResponseFormat = WebMessageFormat.Json
                , UriTemplate = "MaMethode/{id}")]
            int MaMethode(string id);
    Ce qui permet de préciser la verbe HTTP d'appel de ta méthode (GET, POST... ), et de lui mettre un template d'uri si tu as des paramètres à envoyer.

    Donc tu appelleras ton service :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
        http://localhost:5793/Service1.svc/MaMethode/1

  5. #5
    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
    Je t'avoue que je suis un peu dépassé. En fait c'est mon premier service WCF et qui plus est la première fois que j'essaie de faire communiquer une page HTML avec.

    Là ou je bloque maintenant c'est dans la configuration du Web.Config. Je crois que j'ai retiré trop de choses.

    Voici le code qu'il y a:
    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
     
    <?xml version="1.0"?>
    <configuration>
     
      <system.web>
        <compilation debug="true" targetFramework="4.0" />
      </system.web>
      <service behaviorConfiguration="ServiceBehaviour" name="Name">
        <endpoint address="" behaviorConfiguration="web" binding="webHttpBinding" contract="IService1" />
      </service>
      <system.serviceModel>
        <bindings>
          <webHttpBinding>
            <binding name="AjaxBinding"/>
          </webHttpBinding>
        </bindings>
        <client>
        </client>
        <behaviors>
          <endpointBehaviors>
            <behavior name="web">
              <webHttp defaultOutgoingResponseFormat="Json" />
              <!-- Important pour communiquer avec une WebApp -->
            </behavior>
          </endpointBehaviors>
        </behaviors>
        <serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
      </system.serviceModel>
     <system.webServer>
        <modules runAllManagedModulesForAllRequests="true"/>
      </system.webServer>  
    </configuration>
    Peux tu me confirmer ce fichier de config?

    Merci d'avance

  6. #6
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par FraktaL Voir le message
    Je t'avoue que je suis un peu dépassé.
    Je pense que ce tuto te sera bien utile et ça explique plus en détails les 2 commentaires de thetchesk.

Discussions similaires

  1. Réponses: 2
    Dernier message: 20/11/2008, 22h34
  2. Problème avec mon webservice wcf
    Par teddyalbina dans le forum Windows Communication Foundation
    Réponses: 1
    Dernier message: 09/10/2008, 12h59
  3. Comment acceder a un webservice via du javascript ?
    Par arioule dans le forum Services Web
    Réponses: 2
    Dernier message: 09/09/2008, 12h33
  4. [3.5] Webservice WCF/REST
    Par CUCARACHA dans le forum Windows Communication Foundation
    Réponses: 2
    Dernier message: 21/03/2008, 07h48
  5. Un Webservice wcf
    Par Poulain dans le forum Windows Communication Foundation
    Réponses: 5
    Dernier message: 18/03/2008, 16h52

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