Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Das PostAjaxService-Beispiel veranschaulicht, wie Sie mithilfe von Windows Communication Foundation (WCF) einen ASP.NET asynchronen JavaScript- und XML-Dienst (AJAX) erstellen, der HTTP POST verwendet. Ein AJAX-Dienst ist ein Dienst, auf den Sie über einen Webbrowserclient mithilfe von javaScript-Basiscode zugreifen können. Dieses Beispiel basiert auf dem Standard AJAX-Dienstbeispiel ; Der einzige Unterschied zwischen den beiden Beispielen ist die Verwendung von HTTP POST anstelle von HTTP GET.
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 Einrichtungsverfahren und Build-Anweisungen 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 wird oder das WebGetAttribute Attribut nicht angewendet wird, wird das Standard-HTTP-Verb ("POST") verwendet. POST-Anforderungen sind schwieriger zu konstruieren als GET-Anforderungen, aber sie werden nicht zwischengespeichert. Verwenden Sie POST-Anforderungen für alle Vorgänge, bei denen die Zwischenspeicherung nicht geeignet ist.
[ServiceContract(Namespace = "PostAjaxService")]
public interface ICalculator
{
[WebInvoke]
double Add(double n1, double n2);
//Other operations omitted…
}
Erstellen Sie einen AJAX-Endpunkt in dem Service mithilfe von WebScriptServiceHostFactory, genau wie im Beispiel des Basic AJAX Service.
Im Gegensatz zu GET-Anforderungen können Sie POST-Dienste nicht über den Browser aufrufen. Ein Beispiel ist, dass die Navigation zu http://localhost/ServiceModelSamples/service.svc/Add?n1=100&n2=200
zu einem Fehler führt, weil der POST-Dienst erwartet, dass die n1
- und n2
-Parameter im Nachrichtentext im JSON-Format und nicht in der URL gesendet werden.
Die Clientwebseite PostAjaxClientPage.aspx enthält ASP.NET Code, um den Dienst aufzurufen, wenn der Benutzer auf eine der Vorgangsschaltflächen auf der Seite klickt. Der Dienst antwortet auf die gleiche Weise wie im Beispiel für den Einfachen AJAX-Dienst mit der GET-Anforderung.
So können Sie das Beispiel einrichten, erstellen und ausführen
Stellen Sie sicher, dass Sie die Setupanweisungen One-Time Setupprozedur für die Windows Communication Foundation-Beispiele ausführen.
Erstellen Sie die Lösung PostAjaxService.sln wie im Erstellen der Windows Communication Foundation-Beispiele beschrieben.
Navigieren Sie zu
http://localhost/ServiceModelSamples/PostAjaxClientPage.aspx
(öffnen Sie nicht PostAjaxClientPage.aspx im Browser aus dem Projektverzeichnis).