Share via


AJAX-Dienst mit HTTP POST

Das Beispiel PostAjaxService demonstriert die Verwendung von Windows Communication Foundation (WCF) zum Erstellen eines AJAX-Diensts (ASP.NET Asynchronous JavaScript and XML), 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 die Verwendung von WCF mit ASP.NET AJAX finden Sie in den AJAX-Beispielen.

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 auf einen Vorgang angewendet 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. So führt beispielsweise die Navigation zu http://localhost/ServiceModelSamples/service.svc/Add?n1=100&n2=200 zu einem Fehler, da der POST-Dienst erwartet, dass die Parameter n1 und n2 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.

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

  1. Stellen Sie sicher, dass Sie die Anweisungen unter Einmaliges Setupverfahren für Windows Communication Foundation-Beispiele befolgt haben.

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

  3. Navigieren Sie zu http://localhost/ServiceModelSamples/PostAjaxClientPage.aspx (öffnen Sie „PostAjaxClientPage.aspx“ nicht über das Projektverzeichnis im Browser).