Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

Atteint de JavaScriptite Aiguë [Cyril Durand]

Expert ASP.net Ajax et WCF, Cyril Durand parle dans son blog de point techniques sur ASP.net, ASP.net Ajax, JavaScript, WCF et .net en général. Cyril est également consultant indépendant, n'hésitez pas à le contacter pour de l'assistance sur vos projets

Actualités

  • Blog de Cyril DURAND, passionné de JavaScript, Ajax, ASP.net et tout ce qui touche au developpement Web Client-Side.

    Consultant freelance, n'hésitez pas à me contacter pour vos projets .net : architecture, accompagnement, formation, ...

    View Cyril Durand's profile on LinkedIn
    hit counters


    Expertise Commerce server et BizTalk

WCF et JsonP – faire des requetes AJAX cross domain facilement

Je vous avais parlé il y a quelques temps de JSONP, une solution permettant de faire communiquer un navigateur avec un serveur autre que le serveur d’origine de la page actuelle : une sorte de requête XmlHttpRequest cross domain.

J’ai recemment eu besoin de mettre en place cette solution avec un service WCF. Après quelques recherches, je suis tombé sur un exemple de Microsoft implémentant JsonP sous forme d’un behavior WCF : JSON with Padding (AJAX) [MSDN] 

Arès avoir téléchargé l’exemple, vous pouvez alors décorer votre méthode de l’attribut JSONPBehavior

[ServiceContract(Namespace = "")] [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)] public class WSPouet { [WebGet] [OperationContract] [JSONPBehavior(callback = "jsonp")] public PouetData GetData(key url) { } }

Au niveau de la configuration, vous devez avoir ceci :

<system.serviceModel> <behaviors> <endpointBehaviors> <behavior name="WSPouetAspNetAjaxBehavior"> <enableWebScript/> </behavior> </endpointBehaviors> </behaviors> <serviceHostingEnvironment aspNetCompatibilityEnabled="true"/> <services> <service name="WSPouet"> <endpoint address="" behaviorConfiguration="WSPouetAspNetAjaxBehavior" binding="customBinding" bindingConfiguration="jsonpBinding" contract="WSPouet"/> </service> </services> <bindings> <customBinding> <binding name="jsonpBinding"> <jsonpMessageEncoding/> <httpTransport manualAddressing="true"/> </binding> </customBinding> </bindings> <extensions> <bindingElementExtensions> <add name="jsonpMessageEncoding" type="MyCompany.ServiceModel.JsonpBindingExtension, MyCompany.ServiceModel.JsonpExtension"/> </bindingElementExtensions> </extensions> </system.serviceModel>

L’argument callback de l’attribut JsonPBehavior permet de spécifier le nom de l’argument contenant la fonction de callback. Ainsi vous pouvez accéder à votre service en allant sur l’url WSPouet.svc/MyMethod?jsonp=mycallback&key=mykey.

Si vous utilisez jQuery, côté client vous pouvez accèder à votre service en utilisant :

$.getJSON('http://pouet.com/WSPouet.svc/MyMethod?key=pouet&jsonp=?', function(data) { alert(data.d); });

Pour en savoir plus sur JsonP (JavaScript Object Notation with Padding), je vous invite à lire l’article suivant : JSONP : comment faire des requete JSON cross-domain

Posted: lundi 20 juillet 2009 15:23 par cyril
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :

Commentaires

Pas de commentaires

Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- TechDays Paris 2010 : La BI dans SharePoint 2010 par Blog Technique de Romelard Fabrice le il y a 1 heure et 17 minutes

- TechDays Paris 2010 : Déploiement de nouvelles technologies – Retour d’expérience par l’informatique de Microsoft par Blog Technique de Romelard Fabrice le il y a 2 heures et 44 minutes

- TechDays Paris 2010 : Plan de migration vers SharePoint 2010 par Blog Technique de Romelard Fabrice le il y a 6 heures et 27 minutes

- TechDays Paris 2010 : La pleinière du second jour par Blog Technique de Romelard Fabrice le il y a 7 heures et 32 minutes

- Visual Studio 2010 and .NET Framework 4 Release Candidate now available par Matthieu MEZIL le il y a 10 heures et 38 minutes

- Création d’une base de donnée sous SQL Azure par Le Blog (Vert) d'Arnaud JUND le il y a 11 heures et 34 minutes

- TechDays Paris 2010 : Les Services d’applications dans SharePoint 2010 par Blog Technique de Romelard Fabrice le il y a 21 heures et 34 minutes

- TechDays Paris 2010 : La GED et SharePoint 2010 par Blog Technique de Romelard Fabrice le 02-08-2010, 16:54

- TechDays Paris 2010 : SharePoint 2010 et Les réseaux sociaux par Blog Technique de Romelard Fabrice le 02-08-2010, 15:40

- TechDays Paris 2010 : SharePoint 2010 – Description et nouveautés par Blog Technique de Romelard Fabrice le 02-08-2010, 14:33