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.
Notitie
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
een fout navigeert, omdat de POST-service verwacht dat de n1
berichttekst wordt n2
verzonden in de berichttekst in de JSON-indeling 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
Zorg ervoor dat u de installatie-instructies eenmalig uitvoert voor de Windows Communication Foundation-voorbeelden.
Bouw de oplossing PostAjaxService.sln zoals beschreven in het bouwen van de Windows Communication Foundation-voorbeelden.
Ga naar
http://localhost/ServiceModelSamples/PostAjaxClientPage.aspx
(open PostAjaxClientPage.aspx niet in de browser vanuit de projectmap).