Servizio AJAX con il protocollo HTTP POST

L'esempio PostAjaxService mostra come usare Windows Communication Foundation (WCF) per creare un servizio Asynchronous JavaScript and XML (AJAX) ASP.NET che usa 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 è l'uso 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 Ajax.

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 se 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
{
    [WebInvoke]
    double Add(double n1, double n2);
    //Other operations omitted…
}

Creare un endpoint AJAX sul servizio utilizzando WebScriptServiceHostFactory, proprio come nell'esempio del servizio AJAX di base.

A differenza delle richieste GET, non è possibile richiamare servizi POST dal browser. Ad esempio la navigazione in http://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. Assicurarsi di eseguire le istruzioni della Routine di configurazione monouso per gli esempi di Windows Communication Foundation.

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

  3. Passare a http://localhost/ServiceModelSamples/PostAjaxClientPage.aspx (non aprire PostAjaxClientPage.aspx nel browser dalla directory del progetto).