AJAX-tjänst med HTTP POST
PostAjaxService-exemplet visar hur du använder Windows Communication Foundation (WCF) för att skapa en ASP.NET Asynkron JavaScript- och XML-tjänst (AJAX) som använder HTTP POST. En AJAX-tjänst är en som du kan komma åt med hjälp av grundläggande JavaScript-kod från en webbläsarklient. Det här exemplet bygger på basic AJAX-tjänstexemplet . Den enda skillnaden mellan de två exemplen är användningen av HTTP POST i stället för HTTP GET.
AJAX-stöd i Windows Communication Foundation (WCF) är optimerat för användning med ASP.NET AJAX via ScriptManager
kontrollen. Ett exempel på hur du använder WCF med ASP.NET AJAX finns i Ajax-exempel.
Kommentar
Installationsproceduren och bygginstruktionerna för det här exemplet finns i slutet av det här avsnittet.
Tjänsten i följande exempel är en WCF-tjänst utan AJAX-specifik kod.
WebInvokeAttribute Om attributet tillämpas på en åtgärd, eller WebGetAttribute om attributet inte tillämpas, används standard-HTTP-verbet ("POST"). POST-begäranden är svårare att konstruera än GET-begäranden, men de cachelagras inte. använd POST-begäranden för alla åtgärder där cachelagring inte är lämpligt.
[ServiceContract(Namespace = "PostAjaxService")]
public interface ICalculator
{
[WebInvoke]
double Add(double n1, double n2);
//Other operations omitted…
}
Skapa en AJAX-slutpunkt för tjänsten med hjälp WebScriptServiceHostFactoryav , precis som i basic AJAX-tjänstexemplet.
Till skillnad från GET-begäranden kan du inte anropa POST-tjänster från webbläsaren. Om du till exempel navigerar till http://localhost/ServiceModelSamples/service.svc/Add?n1=100&n2=200
resulterar det i ett fel, eftersom POST-tjänsten förväntar sig att parametrarna n1
och n2
skickas i meddelandetexten i JSON-format och inte i URL:en.
Klientwebbsidan PostAjaxClientPage.aspx innehåller ASP.NET kod för att anropa tjänsten när användaren klickar på en av åtgärdsknapparna på sidan. Tjänsten svarar på samma sätt som i basic AJAX-tjänstexemplet med GET-begäran.
Så här konfigurerar du, skapar och kör exemplet
Se till att du utför installationsinstruktionerna engångsinstruktioner för Windows Communication Foundation-exempel.
Skapa lösningen PostAjaxService.sln enligt beskrivningen i Skapa Windows Communication Foundation-exempel.
Gå till
http://localhost/ServiceModelSamples/PostAjaxClientPage.aspx
(öppna inte PostAjaxClientPage.aspx i webbläsaren från projektkatalogen).