Condividi tramite


Servizio AJAX con HTTP POST

L'esempio PostAjaxService illustra come usare Windows Communication Foundation (WCF) per creare un servizio JavaScript asincrono e XML (AJAX) ASP.NET che usa HTTP POST. Un servizio AJAX è uno a cui è possibile accedere usando il codice JavaScript di base da un client web browser. Questo esempio si basa sull'esempio basic del servizio AJAX ; l'unica differenza tra i due esempi è l'uso di HTTP POST anziché HTTP GET.

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

Annotazioni

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

Il servizio nell'esempio seguente è un servizio WCF senza codice specifico di AJAX.

Se l'attributo WebInvokeAttribute viene applicato a un'operazione o l'attributo WebGetAttribute non viene applicato, viene usato il verbo HTTP predefinito ("POST"). Le richieste POST sono più difficili da costruire rispetto alle richieste GET, ma non vengono memorizzate nella cache; usare 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 nel servizio usando WebScriptServiceHostFactory, come nell'esempio di servizio AJAX di base.

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

La pagina Web client PostAjaxClientPage.aspx contiene ASP.NET codice per richiamare il servizio ogni volta che l'utente fa clic su uno dei pulsanti dell'operazione nella pagina. Il servizio risponde nello stesso modo del campione Basic AJAX Service, con la richiesta GET.

Per configurare, compilare ed eseguire l'esempio

  1. Assicurarsi di eseguire le istruzioni di installazione One-Time Procedura di installazione per gli esempi di Windows Communication Foundation.

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

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