다음을 통해 공유


HTTP POST를 사용하는 AJAX 서비스

PostAjaxService 샘플에서는 WCF(Windows Communication Foundation)를 사용하여 HTTP POST를 사용하는 ASP.NET AJAX(비동기 JavaScript 및 XML) 서비스를 만드는 방법을 보여 줍니다. AJAX 서비스는 웹 브라우저 클라이언트에서 기본 JavaScript 코드를 사용하여 액세스할 수 있는 서비스입니다. 이 샘플은 기본 AJAX 서비스 샘플 위에 빌드되며, 두 샘플 사이의 차이는 HTTP GET 대신 HTTP POST를 사용한다는 것뿐입니다.

WCF(Windows Communication Foundation)의 AJAX 지원은 ScriptManager 컨트롤을 통해 ASP.NET AJAX와 함께 사용하도록 최적화되어 있습니다. ASP.NET AJAX와 함께 WCF를 사용하는 예는 샘플을 참조하세요.

참고 항목

이 샘플의 설치 절차 및 빌드 지침은 이 항목의 끝부분에 나와 있습니다.

다음 샘플의 서비스는 AJAX 관련 코드가 없는 WCF 서비스입니다.

작업에 WebInvokeAttribute 특성이 적용되거나 WebGetAttribute 특성이 적용되지 않은 경우에는 기본 HTTP 동사("POST")가 사용됩니다. POST 요청이 GET 요청보다 구성하기 어렵지만 해당 요청은 캐시되지 않습니다. 캐싱이 적절하지 않은 모든 작업에 POST 요청을 사용하십시오.

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

기본 AJAX 서비스 샘플에서와 마찬가지로, WebScriptServiceHostFactory를 사용하여 서비스에 AJAX 엔드포인트를 만듭니다.

GET 요청과 달리 브라우저에서 POST 서비스를 호출할 수는 없습니다. 예를 들어 POST 서비스에서는 URL이 아닌 JSON 형식의 n1n2 매개 변수를 메시지 본문에 전송해야 하기 때문에 http://localhost/ServiceModelSamples/service.svc/Add?n1=100&n2=200로 이동하면 오류가 발생합니다.

클라이언트 웹 페이지 PostAjaxClientPage.aspx에는 사용자가 페이지에 있는 작업 단추 중 하나를 클릭할 때마다 서비스를 호출하는 ASP.NET 코드가 포함되어 있습니다. 서비스는 GET 요청을 사용하여 기본 AJAX 서비스 샘플과 동일한 방식으로 응답합니다.

샘플을 설치, 빌드 및 실행하려면

  1. Windows Communication Foundation 샘플의 일회 설치 절차의 설치 지침을 수행해야 합니다.

  2. Windows Communication Foundation 샘플 빌드에 설명된 대로 PostAjaxService.sln 솔루션을 빌드합니다.

  3. http://localhost/ServiceModelSamples/PostAjaxClientPage.aspx로 이동합니다(프로젝트 디렉터리의 브라우저에서 PostAjaxClientPage.aspx를 열지 않음).