AJAX szolgáltatás HTTP POST használatával

A PostAjaxService minta bemutatja, hogyan használható a Windows Communication Foundation (WCF) a HTTP POST-t használó ASP.NET Aszinkron JavaScript- és XML-szolgáltatás (AJAX) létrehozására. Az AJAX-szolgáltatás olyan szolgáltatás, amely egy webböngésző-ügyfél alapszintű JavaScript-kódját használva érhető el. Ez a minta az alapszintű AJAX-szolgáltatás mintájára épül; a két minta között az egyetlen különbség a HTTP POST használata a HTTP GET helyett.

A Windows Communication Foundation (WCF) AJAX-támogatása ASP.NET AJAX-tal való használatra van optimalizálva a ScriptManager vezérlőn keresztül. Példa a WCF ASP.NET AJAX-tal való használatára, lásd az Ajax-mintákat.

Megjegyzés:

A minta telepítési eljárása és összeállítási utasításai a témakör végén találhatók.

A következő mintában szereplő szolgáltatás egy WCF-szolgáltatás, amely nem tartalmaz AJAX-specifikus kódot.

Ha az WebInvokeAttribute attribútumot egy műveletre alkalmazza, vagy az WebGetAttribute attribútum nincs alkalmazva, a rendszer az alapértelmezett HTTP-igét ("POST") használja. A POST-kérések létrehozása nehezebb, mint a GET-kérések, de nem gyorsítótárazva; használjon POST-kéréseket minden olyan művelethez, ahol a gyorsítótárazás nem megfelelő.

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

Hozzon létre egy AJAX-végpontot a szolgáltatásban az WebScriptServiceHostFactoryalapszintű AJAX-szolgáltatás mintájához hasonlóan.

A GET kérésekkel ellentétben a POST-szolgáltatásokat nem lehet meghívni a böngészőből. A http://localhost/ServiceModelSamples/service.svc/Add?n1=100&n2=200 navigálás hibát eredményez, mert a POST szolgáltatás elvárja, hogy a n1 és n2 paraméterek az üzenet törzsében JSON formátumban legyenek elküldve, és ne az URL-címben.

Az ügyféloldal PostAjaxClientPage.aspx ASP.NET kódot tartalmaz, amely meghívja a szolgáltatást, amikor a felhasználó a lap egyik művelet gombjára kattint. A szolgáltatás ugyanúgy válaszol, mint az alapszintű AJAX-szolgáltatás mintájában, a GET kéréssel.

A példa beállítása, elkészítése és futtatása

  1. Győződjön meg arról, hogy végrehajtja a One-Time telepítési eljárást a Windows Communication Foundation mintákhoz.

  2. Készítse el a PostAjaxService.sln megoldást a Windows Communication Foundation minták készítéséről szóló leírás szerint.

  3. Keresse fel http://localhost/ServiceModelSamples/PostAjaxClientPage.aspx (ne nyissa meg a PostAjaxClientPage.aspx fájlt a böngészőben a projektkönyvtárból).