Servizio AJAX di base

In questo esempio viene illustrato come utilizzare Windows Communication Foundation (WCF) per creare un servizio AJAX (ASP.NET Asynchronous JavaScript and XML), ovvero un servizio al quale è possibile accedere utilizzando codice JavaScript da un client browser Web. Il servizio utilizza l'attributo WebGetAttribute per garantire che il servizio risponda alle richieste HTTP GET ed è configurato per utilizzare il formato dati JSON (JavaScript Object Notation) per le risposte.

Il supporto AJAX in WCF è ottimizzato per l'utilizzo con ASP.NET AJAX tramite il controllo ScriptManager. Per un esempio di utilizzo di WCFcon 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 dell'argomento.

Nel seguente codice, l'attributoWebGetAttribute viene applicato all'operazione Add per assicurare che il servizio risponda alle richieste HTTP GET. Il codice utilizza GET per semplicità (è possibile costruire una richiesta HTTP GET da qualsiasi browser Web). È anche possibile utilizzare GET per abilitare la memorizzazione nella cache. HTTP POST è l'impostazione predefinita in caso non ci fosse l'attributo WebGetAttribute.

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

È possibile creare un endpoint AJAX nel servizio utilizzando l'associazione standard <webHttpBinding> e il comportamento <enableWebScript> nel file di configurazione del servizio.

<system.serviceModel>
    <behaviors>
        <endpointBehaviors>
            <behavior name="Microsoft.Ajax.Samples.CalculatorServiceAspNetAjaxBehavior">
                <enableWebScript />
            </behavior>
        </endpointBehaviors>
    </behaviors>
    <services>
        <service name="Microsoft.Ajax.Samples.CalculatorService">
            <endpoint address=" "
                behaviorConfiguration="Microsoft.Ajax.Samples.CalculatorServiceAspNetAjaxBehavior" 
                binding="webHttpBinding"
                contract="Microsoft.Ajax.Samples.ICalculator" />
        </service>
    </services>
</system.serviceModel>

Il comportamento enableWebScript imposta il formato dei dati predefinito per il servizio su JSON anziché su XML. Per richiamare il servizio, spostarsi su https://localhost/ServiceModelSamples/service.svc/Add? n1=100&n2=200 dopo avere completato i passaggi di configurazione e di compilazione illustrati più avanti in questo argomento. Questa semplice funzionalità di test viene attivata dall'utilizzo di una richiesta HTTP GET.

La pagina Web SimpleAjaxClientPage.aspx del client contiene il codice ASP.NET per richiamare il servizio quando l'utente fa clic su uno dei pulsanti di operazione nella pagina. Il controllo ScriptManager viene utilizzato per rendere accessibile un proxy al servizio tramite JavaScript.

<asp:ScriptManager ID="ScriptManager" runat="server">
     <Services>
          <asp:ServiceReference Path="service.svc" />
     </Services>
</asp:ScriptManager>

Viene creata un'istanza del proxy locale e le operazioni vengono richiamate utilizzando il codice JavaScript seguente.

// Code for extracting arguments n1 and n2 omitted…
// Instantiate a service proxy
var proxy = new SimpleAjaxService.ICalculator();
// Code for selecting operation omitted…
proxy.Add(parseFloat(n1), parseFloat(n2), onSuccess, onFail, null);

Se la chiamata al servizio riesce, il codice richiama il gestore onSuccess e il risultato dell'operazione viene visualizzato in una casella di testo.

function onSuccess(mathResult){
     document.getElementById("result").value = mathResult;
}

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 SimpleAjaxService.sln come descritto in Generazione degli esempi Windows Communication Foundation.

  3. Spostarsi alla pagina https://localhost/ServiceModelSamples/SimpleAjaxClientPage.aspx (non aprire SimpleAjaxClientPage.aspx nel browser all'interno della directory del progetto).

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