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 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.
Hinweis: |
---|
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) and Windows Workflow Foundation (WF) Samples for .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 richten Sie das Beispiel ein, erstellen es und führen es aus
Stellen Sie sicher, dass Sie die Setupanweisungen Einmaliges Setupverfahren für Windows Communication Foundation-Beispiele 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).