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 :

WCF JSONP PhoneGap


Sujet :

Services Web

  1. #1
    Membre du Club
    Inscrit en
    Octobre 2006
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 62
    Points : 43
    Points
    43
    Par défaut WCF JSONP PhoneGap
    Bonjour,

    J'essaye deseperement de creer un WCF pour comuniquer avec JQuery.
    J'arrive a comuniquer quand le dataype est json mais que dans le meme domaine.
    Le probleme est que je voudrais comuniquer avec le WCF depuis un portable (phonegap) est avec le datatype json ca ne marche pas a cause du cross domain.
    J'ai donc opter pour JSONP si je change le datatype a jsonp ca marche mais j'obtient une erreur de parse.
    Quelqu'un sait comment faire pour que le WCF reponde correctement en jsonp??

    Merci d'avance

  2. #2
    Membre du Club
    Inscrit en
    Octobre 2006
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 62
    Points : 43
    Points
    43
    Par défaut
    Slt,

    Je rajoute que si je test le WCF dans chrome depuis une ip qui n'est pas dans le meme domaine ca marche.

    ++

  3. #3
    Expert confirmé

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 065
    Points : 4 229
    Points
    4 229
    Par défaut
    Est-ce que tu rencontres ce problème seulement sur chrome ou sur tous les navigateurs, j'ai eu un problème similaire mais que sur chrome.

  4. #4
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Est-ce que tu as bien mis le fichier crossdomainpolicy.xml à la racine de ton site ?
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  5. #5
    Membre du Club
    Inscrit en
    Octobre 2006
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 62
    Points : 43
    Points
    43
    Par défaut
    Slt,

    Sur les browser ca foncione sur je met direct http://url/fichier.svc/GetData
    Mais quand je passe sous ajax marche pas ...

    Non je n'est pas mi de fichier crossdomainpolicy.xml c'est ca le probleme??
    Mettre ce fichier peut creer un probleme de securite?

    Merci d'avance

  6. #6
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Tout d'abord, je ne suis pas sûr et certain à 100% que ça soit la cause de ton problème, mais ça ne coûte rien d'essayer

    Voici le contenu type d'un fichier crossdomainpolicy.xml :
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?xml version="1.0" encoding="utf-8"?>
    <access-policy>
      <cross-domain-access>
        <policy>
          <allow-from http-request-headers="SOAPAction">
            <domain uri="*"/>
          </allow-from>
          <grant-to>
            <resource path="/" include-subpaths="true"/>
          </grant-to>
        </policy>
      </cross-domain-access>
    </access-policy>
    Plusieurs informations :
    - Ce fichier est à mettre à la racine du site, avec le nom tout en minuscules.
    - Le contenu ci-dessus autorise toutes les requêtes cross domain. Donc si tu veux restreindre à quelques domaines uniquement, il faut l'adapter.
    - Il faudra peut-être adapter la partie en gras et soulignée pour le JSON...

    Les spécifications du fichier sont disponibles ici : Cross-domain policy file specification.

    Enfin, ce fichier ne crée pas de problème de sécurité à lui tout seul. Par contre si tu laisse le fichier tel que ci-dessus, et qu'un programme malveillant arrive à infecter ton site, il ne sera pas gêné pour lancer des requêtes cross domain. Donc il est recommandé de l'adapter le plus précisément possible à ton utilisation.
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  7. #7
    Membre du Club
    Inscrit en
    Octobre 2006
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 62
    Points : 43
    Points
    43
    Par défaut
    Slt,

    Toujours pareil depuis Ajax :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    $.support.cors = true;
                $.ajax({
                    type: 'GET',
                    url: ".../Service1.svc/xml/GetData2",
    		data: '"value":"1"',
    		dataType: "json",
    		contentType: 'charset=utf-8',
    		success: function (response, status, xhr) { alert('success: ' + response); },
                    error: function (xhr, status, error) { alert("Error\n-----\n" + xhr.status + '\n' + error); },
                    complete: function (jqXHR, status) { alert('Status: ' + status + '\njqXHR: ' + JSON.stringify(jqXHR)); }
                });
    J'obtiens access denied

    Mon web.config :

    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
     
    <system.serviceModel>
        <bindings>
          <webHttpBinding>
            <binding name="webBinding"/>
          </webHttpBinding>
        </bindings>
        <services>
          <service name="WCFSXMobile.Service1" behaviorConfiguration="WCFSXMobile.Service1Behavior">
            <endpoint address="" binding="basicHttpBinding" contract="WCFSXMobile.IService1"/>
            <endpoint name="xml" address="xml" binding="webHttpBinding" bindingConfiguration="webBinding" behaviorConfiguration="XMLBehavior" contract="WCFSXMobile.IService1"/>
            <endpoint name="json" address="json" binding="webHttpBinding" bindingConfiguration="webBinding" behaviorConfiguration="JSONBehavior" contract="WCFSXMobile.IService1"/>
          </service>
        </services>
        <behaviors>
          <serviceBehaviors>
            <behavior name="WCFSXMobile.Service1Behavior">
              <serviceMetadata httpGetEnabled="true"/>
              <serviceDebug includeExceptionDetailInFaults="false"/>
            </behavior>
          </serviceBehaviors>
          <endpointBehaviors>
            <behavior name="XMLBehavior">
              <webHttp/>
            </behavior>
            <behavior name="JSONBehavior">
              <enableWebScript/>
            </behavior>
          </endpointBehaviors>
        </behaviors>
      </system.serviceModel>

Discussions similaires

  1. [PhoneGap][JQueryMobile][JSONP]Requête sans effet
    Par tails dans le forum Android
    Réponses: 4
    Dernier message: 19/11/2010, 13h06
  2. [Architecture] WCF Services
    Par leMarseillais dans le forum Windows Communication Foundation
    Réponses: 8
    Dernier message: 08/03/2007, 14h08
  3. [WCF] Récupération du type de Binding
    Par NicolasR dans le forum Windows Communication Foundation
    Réponses: 1
    Dernier message: 14/02/2007, 18h36

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