Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

Actualités

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

    View Cyril Durand's profile on LinkedIn

    hit counters

Modification header HTTP d'une requête Ajax vers un service WCF / ASMX Ajax

Lorsque l'on fait une requête vers un service WCF / ASMX "Ajax enabled" il se peut que l'on ait besoin de passer des paramètres qui ne sont pas propres à la méthode, par exemple un ticket d'authentification, ...

Ajout d'un paramètre dans le header de la requête (donc coté client) :

Pour ajouter un paramètre dans le header HTTP de la requête il faut s'abonner à l'événement invokingRequest.

Sys.Net.WebRequestManager.add_invokingRequest(function(){ e._webRequest._headers['CacheID'] = ... });

Côté serveur on peut relire le paramètre via :

[WebMethod] [ScriptMethod(UseHttpGet = true)] public List<Person> GetPersons() { Guid cacheID = Guid.Empty; try { cacheID = new Guid(HttpContext.Current.Request.Headers["CacheID"]); } catch { cacheID = Guid.NewGuid(); } }

Ajout d'un paramètre dans le header de la réponse (donc côté serveur) :

[WebMethod] [ScriptMethod(UseHttpGet = true)] public List<Person> GetPersons() { // ... HttpContext.Current.Response.AddHeader("CacheID", cacheID.ToString()); }

Ensuite pour lire ce paramètre côté client :

DataService.GetPersons(function(persons){ var cacheID = null; try { // ca ressemble à un bug Atlas ... cacheID = this._WSRequest._executor.getResponseHeader('CacheID'); } catch (ex) { } // ... });

Je me suis servi de cette astuce pour gérer une sorte de cache, session cliente afin de ne pas renvoyer les informations que le serveur m'avait déjà envoyé.

Posted: jeudi 17 avril 2008 18:54 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

- Attention : Arnaque IE7/MSN par .net is good... C# is better ;) le il y a 5 heures et 34 minutes

- Comme Mitsu :-) par Matthieu MEZIL le il y a 7 heures et 56 minutes

- [OpenDocument] Quelques détails sur l’implémentation dans Office 2007 par Julien Chable le il y a 11 heures et 9 minutes

- Page de démarrage CodeS-SourceS par Nix's Blog le 08-07-2008, 19:14

- SharePoint : Erreur pénible lors de la compilation de projet SharePoint - XmlSerializers.dll par Blog Technique de Romelard Fabrice le 08-07-2008, 18:43

- [MOSS Tip Of The Day] Comment connaître le mode de notre page de publication par Nicolas Humann le 08-07-2008, 18:14

- SETI@CodeS-SourceS par Nix's Blog le 08-07-2008, 16:49

- jQuery VS ASP.NET AJAX par Le blog technique de Loïc Bar le 08-07-2008, 15:29

- Lucas change de fonction chez Microsoft France par LucasR le 08-07-2008, 13:02

- Pixel par Blog Technique d'Audrey PETIT le 08-07-2008, 11:25