2010-11-30 4 views
0

서버 코딩을 위해 asp.net (webforms flavor)을 사용합니다. Session 객체 내에 "test"라는 변수를 저장했다고 가정 해 봅시다.Jquery 코드의 세션 변수 캡처

Javery js 파일 안에 콘텐츠를 가져올 수있는 방법이 있나요? (저는 Jquery를 사용합니다). 현재, 다음 해결 방법을 사용합니다 - aspx.cs 파일에서 숨겨진 필드를 채운 다음 Jquery에서 해당 필드의 내용을 가져옵니다.

올바른 방법은 무엇입니까?

웹 메서드를 통해 세션을 노출하고 $ ajax 함수를 사용하여 Jquery 측에서 값을 가져 오려고했지만 보안 오류가 발생했습니다 - "사용 권한이 거부되었습니다"- 추가 설명은 제공되지 않습니다.

내 해결 방법은 정상적으로 작동하지만 나에게는 다소 어색해 보입니다. Jquery에서 세션 액세스를 달성하는 일반적인 방법은 무엇입니까?

답변

0

세션이 서버에 있으므로 JQuery (클라이언트)는 실제로 "직접"액세스 할 수 없습니다. 페이지가 세션 변수의 값을 인식하도록하려면 숨겨진 필드를 사용하여 페이지의 동적으로 생성 된 부분에 값을 포함시키는 것이 가장 좋습니다. 당신은 또한 다음과 같이 귀하의에서 .aspx 파일에 자바 스크립트를 생성 할 수 있습니다 :

<script type="text/javascript"> 
    currentSessionName = '<%=Session["CurrentPersonName"].Replace("'", "\\'")%>'; 
</script> 
+0

감사합니다. 그래도 구문에 대해 확실합니까? JS가 불평하고 있습니다. – sarsnake

+0

정적 .js 파일과 같이 currentSessionName을 어딘가의 변수로 선언해야 할 것입니다. – StriplingWarrior

+0

그게 아니야. This - '<% = Session [ "CurrentPersonName"]. Replace ("'", "\\ '") %>'가 문제입니다. 구문 오류가 있다고 불평합니다. – sarsnake

1

당신은 use jQuery to call a web method을 할 수 있었다. 세션 상태를 사용할 수있게하려면 [WebMethod(true)]attribute overload으로 방법을 장식하십시오.

+0

아마 내가 잘못 갔을 수도 있습니다. 나는 그것을 시도 할 것이다, thanks – sarsnake

+0

그것은 당신을 위해 운동 했느냐? –

+0

아니요, 아무것도 작동하지 않습니다. 너무 초조해. 나는 EnablePageMethods = "true"를 설정하고 WebMethod에 의해 반환 된 값은 아직 정의되지 않았습니다. 내 다른 선택은 단순히 숨겨진 필드에 그것을 밖으로 침을 뱉어 거기에서 가져 오는 것인데, 그것은 오히려 야만적 인 것처럼 보입니다. – sarsnake