>

웹 애플리케이션을 브라우저에서 두 개의 별도 탭으로 여는 시나리오가 있습니다.

한 탭에서 응용 프로그램에서 로그 아웃 한 결과 모든 세션 값이 null이됩니다. 다른 탭에서 웹 응용 프로그램의 앵커 태그를 클릭했습니다. 앵커 태그의 jquery-on 클릭 이벤트에서 세션 값을 확인했습니다. 여기에서 세션을 null로 가져와야합니다 (다른 탭에서 응용 프로그램을 로그 아웃했기 때문에). 사용자가 로그인 한대로 세션 값을 얻습니다 (아마도 페이지 새로 고침이 발생하지 않기 때문일 것입니다).

제 생각은 jQuery에서 세션을 확인하고 세션이 null 인 경우 응용 프로그램을 로그 아웃하고 팝업 페이지를 표시하는 것입니다 ..

세션 값을 얻는 코드는 다음과 같습니다

$(".a".click(function(){
   var session=var data = '@Session["UserName"]';
   if(session!=null){
    //Show popup
   }
   else{
    //Show loginpage
   }
}))

jQuery에서 현재 세션 값을 얻으려면 어떻게해야합니까?


  • 답변 # 1

    세션은 서버 측이므로 jQuery를 사용하여 액세스 할 수 없습니다. Http 핸들러를 작성하고 (있는 경우 sessionid를 공유 함) $.ajax 를 사용하여 값을 리턴 할 수 있습니다. .

  • 답변 # 2

    다른 접근법은 chtml에서

    <input type="hidden" id="hdnSession" data-value="@Request.RequestContext.HttpContext.Session['someKey']" />
    
    

    그리고 스크립트는

    var sessionValue= $("#hdnSession").data('value');
    
    

    또는 다음을 통해 직접 액세스 할 수 있습니다

    jQuery(document).ready(function ($) {
            var value = '@Request.RequestContext.HttpContext.Session["someKey"]';
        });
    
    

  • 답변 # 3

    자바 스크립트를 사용하여 세션 변수 액세스 및 할당 :

    자바 스크립트를 사용하여 ASP.NET 세션 변수 할당 :

    <script type="text/javascript">
    function SetUserName()
    {
        var userName = "Shekhar Shete";
        '<%Session["UserName"] = "' + userName + '"; %>';
         alert('<%=Session["UserName"] %>');
    }
    </script>
    
    

    Javascript를 사용하여 ASP.NET 세션 변수에 액세스 :

    <script type="text/javascript">
        function GetUserName()
        {
            var username = '<%= Session["UserName"] %>';
            alert(username );
        }
    </script>
    
    

    이미 답변 됨

  • 답변 # 4

    내가 해결 한 방법은 컨트롤러에서 함수를 작성하고 jquery 클릭 이벤트에서 아약스를 통해 액세스하는 것입니다 .pp

    먼저 위의 시나리오를 구현하는 방법에 대한 아이디어를 주신 @Stefano Altieri에게 감사의 말을 전합니다. 세션이 만료되면 클라이언트 측에서 현재 세션 값에 액세스 할 수 없습니다.

    또한 적절한 질문을 읽으면 질문에주의 깊게 대답하는 데 도움이된다고 말하고 싶습니다.

  • 답변 # 5

    이 방법을 시험해 보니 저에게 효과적이었습니다. 유용하길 바랍니다.

    index.php
    라는 파일이 있다고 가정 사용자가 로그인하면 사용자 이름을 PHP 세션에 저장합니다. 전의. $_SESSION [ '사용자 이름'];

    index.php 파일에서 이와 같은 작업을 수행 할 수 있습니다

    <script type='text/javascript'>
      var userName = "<?php echo $_SESSION['username'] ?>"; //dont forget to place the PHP code block inside the quotation 
    </script>
    
    

    이제 index.php 파일 또는 index.php에 연결된 .js 파일의 다른 스크립트 블록에서userId변수에 액세스 할 수 있습니다

    ex. index.js 파일

    $(document).ready(function(){
        alert(userId);   
    })
    
    

    데이터베이스 테이블 등을 업데이트하기 위해 ajax 쿼리에서 쿠키로 보관 된 사용자 이름 및 기타 사용자 데이터를 사용할 수 있기 때문에 매우 유용 할 수 있습니다.

    정보를 포함하기 위해 자바 스크립트 변수를 사용하지 않으려면 "type = 'hidden';

    ex. index.php 파일에 다음을 작성하십시오 :

    <?php echo "<input type='hidden' id='username' value='".$_SESSION['username']."'/>";
    ?>
    
    
    그러나 사용자가 브라우저에서 페이지의 소스 코드를 표시하도록 요청하면 숨겨진 입력을 볼 수 있습니다. 소스보기에서 숨겨진 입력은 해당 컨텐츠와 함께 표시됩니다. 그게 바람직하지 않을 수도 있습니다.

관련 자료

  • 이전 android - 카메라 인 텐트 필터
  • 다음 vb.net - 양식 클래스가 이미 열려 있는지 확인하여 양식을 한 번만 엽니 다