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 샘플을 참조하세요.
비고
이 샘플에 대한 설치 절차 및 빌드 지침은 이 항목의 끝에 있습니다.
다음 샘플의 서비스는 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 서비스 샘플과 마찬가지로 서비스를 사용하여 WebScriptServiceHostFactoryAJAX 엔드포인트를 만듭니다.
GET 요청과 달리 브라우저에서 POST 서비스를 호출할 수 없습니다. 예를 들어, http://localhost/ServiceModelSamples/service.svc/Add?n1=100&n2=200
으로 이동하면 오류가 발생합니다. 이는 POST 서비스가 n1
및 n2
매개 변수를 URL이 아닌 JSON 형식의 메시지 본문에 넣어 보내기를 기대하기 때문입니다.
클라이언트 웹 페이지 PostAjaxClientPage.aspx 사용자가 페이지에서 작업 단추 중 하나를 클릭할 때마다 서비스를 호출하는 ASP.NET 코드가 포함되어 있습니다. 서비스는 GET 요청을 사용하여 기본 AJAX 서비스 샘플과 동일한 방식으로 응답합니다.
샘플을 설정, 빌드 및 실행하려면
Windows Communication Foundation 샘플용 설치 지침One-Time 설치 프로시저를 수행해야 합니다.
Windows Communication Foundation 샘플 빌드에 설명된 대로 PostAjaxService.sln 솔루션을 빌드합니다.
http://localhost/ServiceModelSamples/PostAjaxClientPage.aspx
(프로젝트 디렉터리에서 브라우저에서 PostAjaxClientPage.aspx 열지 않음)으로 이동합니다.