Delen via


AJAX-service met HTTP POST

Het PostAjaxService-voorbeeld laat zien hoe u Windows Communication Foundation (WCF) gebruikt om een ASP.NET Asynchrone JavaScript- en XML-service (AJAX) te maken die gebruikmaakt van HTTP POST. Een AJAX-service is een service die u kunt openen met behulp van eenvoudige JavaScript-code vanuit een webbrowserclient. Dit voorbeeld is gebaseerd op het basic AJAX-servicevoorbeeld ; het enige verschil tussen de twee voorbeelden is het gebruik van HTTP POST in plaats van HTTP GET.

AJAX-ondersteuning in WCF (Windows Communication Foundation) is geoptimaliseerd voor gebruik met ASP.NET AJAX via het ScriptManager besturingselement. Zie de Ajax-voorbeelden voor een voorbeeld van het gebruik van WCF met ASP.NET AJAX.

Opmerking

De installatieprocedure en build-instructies voor dit voorbeeld bevinden zich aan het einde van dit onderwerp.

De service in het volgende voorbeeld is een WCF-service zonder AJAX-specifieke code.

Als het WebInvokeAttribute kenmerk wordt toegepast op een bewerking of als het WebGetAttribute kenmerk niet wordt toegepast, wordt het standaard-HTTP-werkwoord ('POST') gebruikt. POST-aanvragen zijn moeilijker te maken dan GET-aanvragen, maar ze worden niet in de cache opgeslagen; POST-aanvragen gebruiken voor alle bewerkingen waarbij caching niet geschikt is.

[ServiceContract(Namespace = "PostAjaxService")]
public interface ICalculator
{
    [WebInvoke]
    double Add(double n1, double n2);
    //Other operations omitted…
}

Maak een AJAX-eindpunt op de service met behulp van het WebScriptServiceHostFactoryvoorbeeld van de Basic AJAX-service.

In tegenstelling tot GET-aanvragen kunt u POST-services niet aanroepen vanuit de browser. Als u bijvoorbeeld naar http://localhost/ServiceModelSamples/service.svc/Add?n1=100&n2=200 navigeert, leidt dat tot een fout, omdat de POST-service verwacht dat de parameters n1 en n2 in de JSON-indeling in de berichttekst worden verzonden en niet in de URL.

De clientwebpagina PostAjaxClientPage.aspx bevat ASP.NET code om de service aan te roepen wanneer de gebruiker op een van de bewerkingsknoppen op de pagina klikt. De service reageert op dezelfde manier als in het voorbeeld van de Basic AJAX-service , met de GET-aanvraag.

Het voorbeeld instellen, compileren en uitvoeren

  1. Zorg ervoor dat u de installatie-instructies uitvoertOne-Time Installatieprocedure voor de Windows Communication Foundation-voorbeelden.

  2. Bouw de oplossing PostAjaxService.sln zoals beschreven in het bouwen van de Windows Communication Foundation-voorbeelden.

  3. Ga naar http://localhost/ServiceModelSamples/PostAjaxClientPage.aspx (open PostAjaxClientPage.aspx niet rechtstreeks in de browser vanuit de projectmap).