AJAX-Dienst mit HTTP POSTAJAX Service Using HTTP POST

In diesem Beispiel wird die Verwendung von Windows Communication Foundation (WCF)Windows Communication Foundation (WCF) zum Erstellen eines ASP.NETASP.NET Asynchronous JavaScript and XML (AJAX)-Diensts veranschaulicht, der HTTP POST verwendet.This sample demonstrates how to use Windows Communication Foundation (WCF)Windows Communication Foundation (WCF) to create an ASP.NETASP.NET Asynchronous JavaScript and XML (AJAX) service that uses HTTP POST. Bei einem AJAX-Dienst handelt es sich um einen Dienst, auf den Sie mit einfachem JavaScript-Code von einem Webbrowserclient aus zugreifen können.An AJAX service is one that you can access by using basic JavaScript code from a Web browser client. Dieses Beispiel baut auf den einfacher AJAX-Dienst ; der einzige Unterschied zwischen den zwei Beispielen wird die Verwendung von HTTP POST anstelle von HTTP GET-Sample.This sample builds on the Basic AJAX Service sample; the only difference between the two samples is the use of HTTP POST instead of HTTP GET.

Die AJAX-Unterstützung in Windows Communication Foundation (WCF)Windows Communication Foundation (WCF) ist für die Verwendung mit ASP.NET AJAX über das ScriptManager-Steuerelement optimiert.AJAX support in Windows Communication Foundation (WCF)Windows Communication Foundation (WCF) is optimized for use with ASP.NET AJAX through the ScriptManager control. Ein Beispiel der Verwendung von WCFWCF mit ASP.NET AJAX finden Sie unter der Ajax-Beispielen.For an example of using WCFWCF with ASP.NET AJAX, see the Ajax Samples.

Hinweis

Die Setupprozedur und die Buildanweisungen für dieses Beispiel befinden sich am Ende dieses Themas.The setup procedure and build instructions for this sample are located at the end of this topic.

Der Dienst im folgenden Beispiel ist ein WCFWCF-Dienst ohne AJAX-spezifischen Code.The service in the following sample is a WCFWCF service with no AJAX-specific code.

Wenn die WebInvokeAttribute -Attribut angewendet wird, in einem Vorgang oder die WebGetAttribute -Attribut nicht angewendet wird, wird das standardmäßige HTTP-Verb ("POST") verwendet.If the WebInvokeAttribute attribute is applied on an operation, or the WebGetAttribute attribute is not applied, the default HTTP verb ("POST") is used. 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.POST requests are harder to construct than GET requests, but they are not cached; use POST requests for all operations where caching is not appropriate.

[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".Create an AJAX endpoint on the service by using the WebScriptServiceHostFactory, just as in the Basic AJAX Service sample.

Im Gegensatz zu GET-Anforderungen können Sie POST-Dienste nicht aus dem Browser aufrufen.Unlike GET requests, you cannot invoke POST services from the browser. 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.For example, navigating to http://localhost/ServiceModelSamples/service.svc/Add?n1=100&n2=200 results in an error, because the POST service expects the n1 and n2 parameters to be sent in the message body—in the JSON format—and not in the URL.

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.The client Web page PostAjaxClientPage.aspx contains ASP.NET code to invoke the service whenever the user clicks one of the operation buttons on the page. Der Dienst reagiert auf die gleiche Weise wie in der einfacher AJAX-Dienst Beispiel mit dem GET-Anforderung.The service responds in the same way as in the Basic AJAX Service sample, with the GET request.

Wichtig

Die Beispiele sind möglicherweise bereits auf dem Computer installiert.The samples may already be installed on your computer. Suchen Sie nach dem folgenden Verzeichnis (Standardverzeichnis), bevor Sie fortfahren.Check for the following (default) directory before continuing.

<InstallDrive>:\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)Windows Communication Foundation (WCF) - und WFWF -Beispiele herunterzuladen.If this directory does not exist, go to Windows Communication Foundation (WCF) and Windows Workflow Foundation (WF) Samples for .NET Framework 4 to download all Windows Communication Foundation (WCF)Windows Communication Foundation (WCF) and WFWF samples. Dieses Beispiel befindet sich im folgenden Verzeichnis.This sample is located in the following directory.

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

So können Sie das Beispiel einrichten, erstellen und ausführenTo set up, build, and run the sample

  1. Stellen Sie sicher, dass Sie die setupanweisungen ausführen Setupprozedur für die Windows Communication Foundation-Beispiele zum einmaligen.Ensure that you perform the setup instructions One-Time Setup Procedure for the Windows Communication Foundation Samples.

  2. Erstellen Sie die Projektmappe PostAjaxService.sln, wie in beschrieben Erstellen der Windows Communication Foundation-Beispiele.Build the solution PostAjaxService.sln as described in Building the Windows Communication Foundation Samples.

  3. Navigieren Sie zu http://localhost/ServiceModelSamples/PostAjaxClientPage.aspx (öffnen Sie "PostAjaxClientPage.aspx" nicht aus dem Projektverzeichnis im Browser).Navigate to http://localhost/ServiceModelSamples/PostAjaxClientPage.aspx (do not open PostAjaxClientPage.aspx in the browser from the project directory).

Siehe auchSee Also