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 Ajax Samples.
Nota: |
---|
La procedura di installazione e le istruzioni di compilazione per questo esempio si trovano alla fine dell'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
{ [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, 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.
Nota: |
---|
È possibile che gli esempi siano già installati nel computer. Verificare la directory seguente (impostazione predefinita) prima di continuare.
<UnitàInstallazione>:\WF_WCF_Samples
Se questa directory non esiste, andare alla sezione relativa agli esempi di Windows Communication Foundation (WCF) e Windows Workflow Foundation (WF) per .NET Framework 4 per scaricare tutti gli esempi Windows Communication Foundation (WCF) e WF. Questo esempio si trova nella directory seguente.
<UnitàInstallazione>:\WF_WCF_Samples\WCF\Basic\Ajax\PostAjaxService
|
Per impostare, compilare ed eseguire l'esempio
Accertarsi di eseguire le istruzioni di installazione descritte in Procedura di installazione singola per gli esempi di Windows Communication Foundation.
Compilare la soluzione PostAjaxService.sln come descritto in Generazione degli esempi Windows Communication Foundation.
Passare alla pagina https://localhost/ServiceModelSamples/PostAjaxClientPage.aspx (non aprire PostAjaxClientPage.aspx nel browser dalla directory del progetto).