AJAX-Dienst mit HTTP POST

In diesem Beispiel wird die Verwendung von Windows Communication Foundation (WCF) zum Erstellen eines ASP.NET Asynchronous JavaScript and XML (AJAX)-Diensts veranschaulicht, der HTTP POST verwendet. Bei einem AJAX-Dienst handelt es sich um einen Dienst, auf den Sie mit einfachem JavaScript-Code von einem Webbrowserclient aus zugreifen können. Dieses Beispiel baut auf dem Beispiel Einfacher AJAX-Dienst auf. Der einzige Unterschied zwischen den beiden Beispielen besteht in der Verwendung von HTTP POST anstelle von HTTP GET.

Die AJAX-Unterstützung in Windows Communication Foundation (WCF) ist für die Verwendung mit ASP.NET AJAX über das ScriptManager-Steuerelement optimiert. Ein Beispiel für das Verwenden von WCF mit ASP.NET AJAX finden Sie unter Ajax Samples.

Hinweis

Die Setupprozedur und die Buildanweisungen für dieses Beispiel befinden sich am Ende dieses Themas.

Der Dienst im folgenden Beispiel ist ein WCF-Dienst ohne AJAX-spezifischen Code.

Wenn das WebInvokeAttribute-Attribut in einem Vorgang angewendet wird oder das WebGetAttribute-Attribut nicht angewendet wird, wird das HTTP-Standardverb ("POST") verwendet. POST-Anforderungen sind schwieriger zu erstellen als GET-Anforderungen, sie werden jedoch nicht zwischengespeichert. Verwenden Sie POST-Anforderungen für alle Vorgänge, bei denen keine Zwischenspeicherung benötigt wird.

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

Erstellen Sie im Dienst mithilfe von WebScriptServiceHostFactory einen AJAX-Endpunkt wie im Beispiel "Einfacher AJAX-Dienst".

Im Gegensatz zu GET-Anforderungen können Sie POST-Dienste nicht aus dem Browser aufrufen. Das Navigieren zu http:\/\/localhost\/ServiceModelSamples\/service.svc\/Add?n1=100&n2=200 führt beispielsweise zu einem Fehler, da der POST-Dienst erwartet, dass der n1-Parameter und der n2-Parameter im Nachrichtentext (im JSON-Format) und nicht in der URL gesendet werden.

Die Clientwebseite "PostAjaxClientPage.aspx" enthält ASP.NET-Code zum Aufrufen des Diensts, wenn der Benutzer auf eine der Vorgangsschaltflächen auf der Seite klickt. Der Dienst antwortet auf die gleiche Weise wie im Beispiel Einfacher AJAX-Dienst mit der GET-Anforderung.

Wichtig

Die Beispiele sind möglicherweise bereits auf dem Computer installiert. Suchen Sie nach dem folgenden Verzeichnis (Standardverzeichnis), bevor Sie fortfahren.

<Installationslaufwerk>:\WF_WCF_Samples

Wenn dieses Verzeichnis nicht vorhanden ist, rufen Sie Windows Communication Foundation (WCF) und Windows Workflow Foundation (WF) Samples für .NET Framework 4 auf, um alle Windows Communication Foundation (WCF)- und WF-Beispiele herunterzuladen. Dieses Beispiel befindet sich im folgenden Verzeichnis.

<Installationslaufwerk>:\WF_WCF_Samples\WCF\Basic\Ajax\PostAjaxService

So können Sie das Beispiel einrichten, erstellen und ausführen

  1. Stellen Sie sicher, dass Sie die Setupanweisungen Einmaliges Setupverfahren für Windows Communication Foundation-Beispiele ausführen.

  2. Erstellen Sie die Projektmappe „PostAjaxService.sln“, wie in Erstellen der Windows Communication Foundation-Beispiele beschrieben.

  3. Navigieren Sie zu http:\/\/localhost\/ServiceModelSamples\/PostAjaxClientPage.aspx (öffnen Sie "PostAjaxClientPage.aspx" nicht aus dem Projektverzeichnis im Browser).

Siehe auch