Partager via


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 une utilisation avec AJAX ASP.NET à travers le contrôle ScriptManager. Pour obtenir un exemple de WCF avec ASP.NET AJAX, consultez les Exemples AJAX.

Bb410768.note(fr-fr,VS.90).gifRemarque :
Cet exemple requiert l'installation de .NET Framework version 3.5 pour être généré et exécuté. Visual Studio 2008 est nécessaire pour l'ouverture des fichiers projet et solution.

Bb410768.note(fr-fr,VS.90).gifRemarque :
La procédure d'installation ainsi que les instructions de génération relatives à cet exemple figurent en fin de 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
    {
        [OperationContract]
        [WebInvoke]
        double Add(double n1, double n2);
        //Other operations omitted…
    }

Créez un point de terminaison AJAX sur le service en utilisant la liaison <webHttpBinding> standard et le comportement <enableWebScript> dans le fichier de configuration du service, comme dans l'exemple Basic AJAX Service.

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.

Le 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.

Pour configurer, générer et exécuter l'exemple

  1. Assurez-vous d'avoir suivi les instructions d'installation de la section Procédure d'installation unique pour les exemples Windows Communication Foundation.

  2. Générez la solution PostAjaxService.sln telle que décrite dans la section Génération des exemples Windows Communication Foundation.

  3. Naviguez jusqu'à https://localhost/ServiceModelSamples/PostAjaxClientPage.aspx (n'ouvrez pas PostAjaxClientPage.aspx dans le navigateur depuis le répertoire du projet).

Send comments about this topic to Microsoft.
© 2007 Microsoft Corporation. All rights reserved.