2009-12-02 2 views
0

jQuery의 Ajax 메서드를 사용하여 ASP.NET 웹 서비스를 사용하려고합니다. 나는 또한이 방법에서 나타냅니다 값의 일종을 반환 할jQuery/Ajax 및 ASP.NET 웹 서비스를 사용하는 세션 상태

[WebMethod(EnableSession = true)] 
[ScriptMethod(UseHttpGet = false, ResponseFormat = ResponseFormat.Json)] 
public MyObject[] GetMyObjects(int pageIndex) {/*...*/} 

: 나는 웹 서비스 메서드의 반환 형식은 데이터를 JSON 형식, 나는 이러한 특성과 방법을 표시하고 있습니다되고 싶어 세션이 만료되었는지 여부, SOAP 헤더 및 출력 매개 변수 jQuery 구문을 어떻게 사용합니까? 내가 MyObject[] 배열을 SessionValid 속성과 페이로드를 포함하는 직렬화 가능한 ResponseType 객체로 포장해야합니까? 아니면 jQuery로 SOAP 헤더와 출력 매개 변수를 사용할 수 있습니까?

감사합니다.

답변

1

MyObject [] 배열을 SessionValid 속성과 페이로드가 포함 된 serializable ResponseType 개체로 래핑해야합니까?

이것은 일반적으로 사용하는 방법입니다.
구현에 시간이 걸리지 않으며 유지 관리가 매우 쉽습니다.

[Serializable] 
public class MyReturn 
{ 
    public MyObject[] MyObjectList { get; set; } 
    public bool SessionExpired { get; set; } 
} 

그런 다음 AJAX 호출을 처리하는 곳에서 처리하십시오.

편집 : 나는 보통 내 AJAX에

//... 
contentType: "application/json; charset=utf-8", 
dataType: "json", 
//... 

을 사용하여 반환 된 유형이 JSON 형식으로되어 확인하기 위해 호출합니다.

+0

내 응답을 게시하기 전에 실제로 똑같은 생각을하고 있었지만 현재 요청에서 HttpContext의 현재 세션이 만들어 졌는지 확인할 수있는 직관적 인 방법은 없습니다. – regex

1

SOAP 웹 서비스에서 세션 사용에 익숙하지 않습니다. 그러나, 나는 this post에 비틀 거 렸습니다.이 말은 JavaScript가 세션을 유지하는 방법이므로 쿠키를 설명해야한다고 말합니다.

SOAP은 머리글을 통해 세션을 추적하는 데 다른 방법을 사용할 수 있지만 정확한지는 알 수 없습니다.

+0

감사합니다. 그러나 JScript/Infopath는 웹 브라우저에서 구현 된 JavaScript와 동일합니까? – devlord

+0

테스트를 마친 후 세션 상태가 유지되지 않는 것처럼 보입니다. 나는 아약스 호출에서 쿠키를 전달하는 방법을 알아야 할 것이다. – devlord

+0

좋습니다. 작동 중입니다. 방금 내 코드에 몇 가지 버그가있었습니다. – devlord

관련 문제