ASMX 파일에서 JSON을 출력하는 방법
ASMX 파일 뒤에 코드가 있는 파일을 만들었습니다.정상적으로 동작하고 있습니다만, XML을 출력하고 있습니다.
다만, JSON을 출력하기 위해서 필요합니다.ResponseFormat 구성이 작동하지 않는 것 같습니다.코드 배후에 있는 것은:
[System.Web.Script.Services.ScriptService]
public class _default : System.Web.Services.WebService {
[WebMethod]
[ScriptMethod(UseHttpGet = true,ResponseFormat = ResponseFormat.Json)]
public string[] UserDetails()
{
return new string[] { "abc", "def" };
}
}
XML로 압축되지 않고 순수 JSON 스트링을 수신하려면 JSON 스트링을 직접 에 써야 합니다.HttpResponse를 변경합니다.WebMethod타이프를 에 되돌리다void.
[System.Web.Script.Services.ScriptService]
public class WebServiceClass : System.Web.Services.WebService {
[WebMethod]
public void WebMethodName()
{
HttpContext.Current.Response.Write("{property: value}");
}
}
WebService에서 ResponseFormat이 JSON으로 설정된 경우에도 XML을 반환합니다.
요구가 GET이 아닌 POST 요구임을 확인합니다.Scott Guthrie가 이유를 설명하는 글을 올렸습니다.
jQuery 전용으로 작성되어 있지만, 다음과 같은 경우에도 도움이 될 수 있습니다.
jQuery를 사용하여 ASP를 소비합니다.NET JSON 웹 서비스
지금은 오래된 소식일 수도 있지만, 마법은 다음과 같습니다.
- 웹 서비스 클래스의 [ScriptService] 속성
- [ScriptMethod(UseHttpGet) = true, ResponseFormat = ResponseFormat.Json)] 메서드
- 콘텐츠 유형: 요청 중인 응용 프로그램/json
이러한 부품이 배치되어 있으면 GET 요청이 성공합니다.
HTTP POST의 경우
- [ScriptMethod(UseHttpGet) = false, ResponseFormat = ResponseFormat.Json)] 메서드
클라이언트 측(Web 메서드가 MethodName이라고 불리며 searchString이라는 단일 파라미터를 사용하는 것으로 가정):
$.ajax({
url: "MyWebService.asmx/MethodName",
type: "POST",
contentType: "application/json",
data: JSON.stringify({ searchString: q }),
success: function (response) {
},
error: function (jqXHR, textStatus, errorThrown) {
alert(textStatus + ": " + jqXHR.responseText);
}
});
어렵게 배운 (Google에서 기본적으로 4시간)빠른 정보입니다만, ASPX 파일내의 PageMethods 를 사용하고, 정적 메서드를 asmx 파일로 이행하는 경우는, 정적 메서드가 될 수 없습니다.
또한 JSON을 통화에서 되돌리려면 웹 서비스 Content-Type: application/json에 알려야 합니다(jQuery를 사용하고 있습니다.jQuery를 사용할 때 회피해야 할 3가지 실수 기사는 매우 유익했습니다.여기 다른 답변에 나와 있는 것과 같은 웹사이트에서 나온 것입니다).
웹 서비스를 클라이언트 스크립트에서 호출하시겠습니까, 아니면 서버 측에서 호출하시겠습니까?
컨텐츠 타입의 헤더를 서버에 송신하는 것이 도움이 되는 경우가 있습니다.
'어플리케이션/json; charset=utf-8'
클라이언트 측에서는 클라이언트 측 라이브러리의 프로토타입을 사용하고 있으며, 컨텐츠가 있습니다.이를 지정할 수 있는 Ajax 콜을 발신할 때 파라미터를 입력합니다.jQuery가 J를 잡은 것 같아SON 방식
다른 방법:범용 HTTP 핸들러(.ashx)를 사용하고 마음에 드는 json 라이브러리를 사용하여 수동으로 JSON을 직렬화하고 직렬화를 해제합니다.
요청 처리와 응답 생성에 대한 완벽한 제어가 다른 어떤 것보다 우선한다는 것을 알게 되었습니다.NET은 심플하고 RESTFul한 웹 서비스를 제공합니다.
언급URL : https://stackoverflow.com/questions/211348/how-to-let-an-asmx-file-output-json
'programing' 카테고리의 다른 글
| Angular를 사용하는 로그인 화면이 있는SPA의 예JS 및 ASP에 접속합니다.NET Web API 2? (0) | 2023.02.28 |
|---|---|
| ORA-28040: 일치하는 인증 프로토콜 예외 없음 (0) | 2023.02.28 |
| 오라클 인덱스를 선택하고 최적화하는 방법 (0) | 2023.02.28 |
| as 키워드는 어떤 역할을 합니까? (0) | 2023.02.28 |
| Java의 Mono 클래스: 무엇을 언제 사용할 수 있습니까? (0) | 2023.02.28 |