Partager via


AJAX Service Using HTTP POST

L’exemple PostAjaxService montre comment utiliser Windows Communication Foundation (WCF) pour créer un service ASP.NET Asynchronous JavaScript And XML (AJAX) 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 Service AJAX de base. 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 ASP.NET AJAX via le contrôle ScriptManager. Pour obtenir un exemple d’utilisation de WCF avec ASP.NET AJAX, consultez Exemples AJAX.

Notes

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, l’accès à http://localhost/ServiceModelSamples/service.svc/Add?n1=100&n2=200 génère une erreur, car 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 Service AJAX de base, avec la requête GET.

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

  1. Assurez-vous d’avoir suivi les instructions d’installation 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 Construction des exemples Windows Communication Foundation.

  3. Accédez à http://localhost/ServiceModelSamples/PostAjaxClientPage.aspx (n’ouvrez pas PostAjaxClientPage.aspx dans le navigateur à partir du répertoire du projet).