AJAX Service Using HTTP POST
Cet exemple montre comment utiliser Windows Communication Foundation (WCF) pour créer un ASP.NET service AJAX (JavaScript et XML asynchrones) qui utilise HTTP POST. Un service AJAX est un service auquel vous pouvez accéder à l'aide du code Javascript de base d'un client de navigateur Web. Cet exemple repose sur l'exemple Basic AJAX Service ; la seule différence entre les deux réside dans l'utilisation de HTTP POST au lieu de HTTP GET.
La prise en charge d'AJAX dans Windows Communication Foundation (WCF) est optimisée pour permettre son utilisation avec AJAX ASP.NET via le contrôle ScriptManager. Pour obtenir un exemple d'utilisation de WCF avec ASP.NET AJAX, consultez Ajax Samples.
Remarque : |
---|
La procédure d'installation ainsi que les instructions de génération relatives à cet exemple figurent à la fin de cette rubrique. |
Le service dans l'exemple suivant est un service WCF sans code spécifique à AJAX.
Si l'attribut WebInvokeAttribute est appliqué à une opération, ou si l'attribut WebGetAttribute n'est pas appliqué, le verbe HTTP par défaut (« POST ») est utilisé. Les demandes POST sont plus difficiles à générer que les demandes GET, mais elles ne sont pas mises en cache ; utilisez des demandes POST pour toutes les opérations où la mise en cache n'est pas appropriée.
[ServiceContract(Namespace = "PostAjaxService")]
public interface ICalculator
{ [WebInvoke]
double Add(double n1, double n2);
//Other operations omitted…
}
Créez un point de terminaison AJAX sur le service à l'aide de WebScriptServiceHostFactory, comme dans l'exemple de servie AJAX de base.
Contrairement aux demandes GET, vous ne pouvez pas appeler des services POST depuis le navigateur. Par exemple, le fait de naviguer jusqu'à https://localhost/ServiceModelSamples/service.svc/Add?n1=100&n2=200 génère une erreur, parce que le service POST s'attend à ce que les paramètres n1
et n2
soient envoyés dans le corps du message au format JSON et non dans l'URL.
La page Web PostAjaxClientPage.aspx du client contient le code ASP.NET pour appeler le service toutes les fois que l'utilisateur clique sur l'un des boutons d'opération de la page. Le service répond de la même façon, comme dans l'exemple Basic AJAX Service, avec la demande GET.
Remarque : |
---|
Les exemples peuvent déjà être installés sur votre ordinateur. Recherchez le répertoire (par défaut) suivant avant de continuer.
<LecteurInstall>:\WF_WCF_Samples
Si ce répertoire n'existe pas, rendez-vous sur la page (éventuellement en anglais) des exemples Windows Communication Foundation (WCF) et Windows Workflow Foundation (WF) pour .NET Framework 4 pour télécharger tous les exemples Windows Communication Foundation (WCF) et WF. Cet exemple se trouve dans le répertoire suivant.
<LecteurInstall>:\WF_WCF_Samples\WCF\Basic\Ajax\PostAjaxService
|
Pour configurer, générer et exécuter l'exemple
Assurez-vous d'avoir suivi les instructions d'installation de la section Procédure d'installation unique pour les exemples Windows Communication Foundation.
Générez la solution PostAjaxService.sln telle que décrite dans la section Génération des exemples Windows Communication Foundation.
Naviguez jusqu'à https://localhost/ServiceModelSamples/PostAjaxClientPage.aspx (n'ouvrez pas PostAjaxClientPage.aspx dans le navigateur depuis le répertoire du projet).