2009-03-09 2 views
3

최근에 Test가 Default.aspx의 WebMethod이고 POST 요청의 콘텐츠 형식이 "application/json"인 POST가 "Default.aspx/Test"에 만들어진 jQuery 예제를 보았습니다. .WebMethod 응답 형식

WebMethod의 응답이 JSON에있었습니다. 필자는 항상 WebMethod가 SOAP 응답을 반환한다고 생각했지만, 필자가 말한 것처럼이 코드를 올바르게 해석하면 WebMethod가 JSON을 반환합니다.

이 정보가 맞습니까? WebMethods는 요청 content-type 형식으로 응답을 반환합니까? 언제부터 가능 했습니까? 항상? 아니면 ASP.NET AJAX가 설치 되었기 때문입니까? 그렇다면 어떻게 작동하는지보기 위해 어떤 네임 스페이스를 분해 할 수 있습니까?

.NET에서 .NET으로의 WebMethods 만 SOAP에 사용되었으며 요청 쿼리 문자열을 기반으로 올바른 형식 (SOAP, JSON 또는 XML)으로 응답하는 사용자 지정 코드를 작성했습니다. 매개 변수는 원하는 형식을 지정합니다. 나는 항상 이런 종류의 메타 포맷 기능에 WCF가 필요하다고 생각했다.

+0

[이 질문에 대한 답변] (http://stackoverflow.com/questions/460280/custom-c-data-transfer-objects-from-javascript-pagemethods)도 참조하십시오. – senderle

답변

1

ASP.NET AJAX의 일부입니다. 예를 들어 Using Web Services in ASP.NET AJAX을 참조하십시오. AJAX 클라이언트 아키텍처의 일부는 다음과 같습니다.

HTTP POST 동사를 사용하여 웹 서비스를 호출하십시오. POST 요청에는 브라우저가 서버에 보내는 데이터가 들어있는 본문이 있습니다. 크기 제한이 없습니다. 따라서 데이터 크기가 GET 요청의 본질적인 크기 제한을 초과하면 POST 요청을 사용할 수 있습니다. 클라이언트는 요청을 JSON 형식으로 serialize하고 POST 데이터로 서버에 전송합니다. 서버는 JSON 데이터를 .NET Framework 형식으로 deserialize하고 실제 웹 서비스 호출을합니다. 응답하는 동안 서버는 반환 값을 직렬화하여 클라이언트에 다시 전달합니다. 그러면 클라이언트가이를 처리하기 위해 JavaScript 객체로 역 직렬화합니다.