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

- un Pacman en Silverlight 2b2 par Pierrick's Blog le il y a 4 heures et 31 minutes

- Une table -> deux entity types sans colonne discriminante en base, gestion des relations par Matthieu MEZIL le il y a 12 heures et 30 minutes

- ssdl view et TPT par Matthieu MEZIL le 07-05-2008, 02:04

- L'injection SQL n'est PAS un problème QUE pour les développeurs web ! par CoqBlog le 07-05-2008, 01:08

- Un outil pour réaliser des animations WPF basées sur des équations de Bézier par Perspective le 07-04-2008, 21:45

- Sandcastle et CodePlex : le verdict par CoqBlog le 07-04-2008, 20:53

- ssdl view et TPH par Matthieu MEZIL le 07-04-2008, 19:12

- Webcasts sur le Parallel Framework disponibles par Matthieu MEZIL le 07-04-2008, 17:26

- [Silverlight] - Comprendre et Débuter avec Silverlight par Danuz le 07-04-2008, 12:41

- SharePoint : Nouvel article sur l'exportation et Importation de sites SharePoint par Blog Technique de Romelard Fabrice le 07-04-2008, 01:00