Servizio AJAX con il protocollo HTTP POST

In questo esempio viene illustrato come utilizzare Windows Communication Foundation (WCF) per creare un servizio Asynchronous JavaScript and XML (AJAX) ASP.NET che utilizza HTTP POST. È possibile accedere a questo servizio utilizzando il codice JavaScript di base da un client del browser Web. Questo esempio è basato sull'esempio Servizio AJAX di base; l'unica differenza tra i due esempi è l'utilizzo di HTTP POST anziché HTTP GET.

Il supporto AJAX in Windows Communication Foundation (WCF) è ottimizzato per l'utilizzo con ASP.NET AJAX tramite il controllo ScriptManager. Per un esempio di utilizzo di WCF con ASP.NET AJAX, vedere Esempi di AJAX.

Nota

Per poter essere generato ed eseguito, l'esempio richiede che sia installato .NET Framework versione 3.5. Per aprire il progetto e i file della soluzione è necessario Visual Studio 2008.

Nota

La procedura di installazione e le istruzioni di compilazione per questo esempio si trovano alla fine di questo argomento.

Il servizio dell'esempio seguente è un servizio WCF senza codice specifico per AJAX.

Se l'attributo WebInvokeAttribute viene applicato a un'operazione o l'attributo WebGetAttribute non viene applicato, viene utilizzato il verbo HTTP predefinito ("POST"). Le richieste POST sono più difficili da costruire rispetto alle richieste GET, ma non vengono memorizzate nella cache; utilizzare le richieste POST per tutte le operazioni in cui la memorizzazione nella cache non è appropriata.

[ServiceContract(Namespace = "PostAjaxService")]
    public interface ICalculator
    {
        [OperationContract]
        [WebInvoke]
        double Add(double n1, double n2);
        //Other operations omitted…
    }

Creare un endpoint AJAX nel servizio utilizzando l'associazione standard <webHttpBinding> e il comportamento <enableWebScript> nel file di configurazione del servizio, in modo analogo all'esempio Servizio AJAX di base.

A differenza delle richieste GET, non è possibile richiamare servizi POST dal browser. Ad esempio, il passaggio a https://localhost/ServiceModelSamples/service.svc/Add? n1=100&n2=200 comporta un errore poiché il servizio POST si aspetta che i parametri n1 e n2 vengano inviati nel corpo del messaggio in formato JSON e non nell'URL.

La pagina Web PostAjaxClientPage.aspx del client contiene il codice ASP.NET per richiamare il servizio ogni qualvolta che l'utente fa clic su uno dei pulsanti di operazione nella pagina. Il servizio risponde come nell'esempio Servizio AJAX di base, con la richiesta GET.

Per impostare, compilare ed eseguire l'esempio

  1. Accertarsi di eseguire le istruzioni di installazione descritte in Procedura di installazione singola per gli esempi di Windows Communication Foundation.

  2. Compilare la soluzione PostAjaxService.sln come descritto in Generazione degli esempi Windows Communication Foundation.

  3. Passare alla pagina https://localhost/ServiceModelSamples/PostAjaxClientPage.aspx (non aprire PostAjaxClientPage.aspx nel browser dalla directory del progetto).

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