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 zur 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-Beispiele.
Tipp
Zum Erstellen und Ausführen dieses Beispiels muss .NET Framework, Version 3.5 installiert sein. Zum Öffnen des Projekts und der Projektmappendateien ist Visual Studio 2008 erforderlich.
Tipp
Die Setupprozedur und 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
{
[OperationContract]
[WebInvoke]
double Add(double n1, double n2);
//Other operations omitted…
}
Erstellen Sie im Dienst mithilfe der <webHttpBinding>-Standardbindung und dem <enableWebScript>-Verhalten in der Dienstkonfigurationsdatei 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 https://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.
So richten Sie das Beispiel ein, erstellen es und führen es aus
Stellen Sie sicher, dass Sie die Setupanweisungen Beispiele zum einmaligen Setupverfahren für Windows Communication Foundation ausführen.
Erstellen Sie die Projektmappe "PostAjaxService.sln", wie in Erstellen der Windows Communication Foundation-Beispiele beschrieben.
Navigieren Sie zu https://localhost/ServiceModelSamples/PostAjaxClientPage.aspx (öffnen Sie "PostAjaxClientPage.aspx" nicht aus dem Projektverzeichnis im Browser).
Send comments about this topic to Microsoft.
© 2007 Microsoft Corporation. All rights reserved.