none
js 判断 session 是否存在: RRS feed

  • 问题

  • js  判断 session 

     function checsessoin()
     {
       if( <%=Session["uid"] %>.ToString() == "")
       {
          alert('请先登录');
          return false;
       }


     这样执行不了:js 能判断吗》
    小吴
    2009年8月6日 2:46

答案

  • 你好,

    js操作不了session信息的,session是服务器端对象
    楼主可以考虑写监听器,在session过期的时候向客户端写cookie,javascript可以操作这个cookie
    jon.valett@gmail.com
    2009年8月6日 3:04
    版主
  • 你好你可以在服务器端新建个实现IHttpHandler 的类,在web.config中进行相应配置,或者直接建个aspx文件在code.behind中做相应处理即可,然后在js中通过xmlhttp 发送请求,当然得把你需要检查的session的key发送过去,然后由服务器端返回session是否存在的responseText或者xml,然后再做进一步处理

    可以直接在服务器端的那个页面或者IHttpHandler进行判断是否存在
    Wenn ich dich hab’,gibt es nichts, was unerträglich ist.坚持不懈!http://hi.baidu.com/1987raymond
    2009年8月6日 3:19
    版主
  • 你在 PageLoad 的时候将 Session["Uid"] 写到一个 js 变量中,然后在 js 判断这个变量就行了,另外使用 ajax 也能做到
    知识改变命运,奋斗成就人生!
    2009年8月6日 4:02
    版主
  • 楼主,您好,您的代码其实逻辑没有问题,只是语法上有些问题。

    首先:.ToString()是c#语法,不是js语法,toString()才是。
    其次:<%=Session["uid"] %>这段代码表面上看是生成字符串,而实际上对于js来说,是定义了一个新变量。所以要表示字符串,则需要用单引号或双引号,像这样:"<%=Session["uid"] %>"。

    可执行代码请参考:

       function checsessoin()
       {
          var strSession = "<%=Session["uid"] %>".toString(); //可以用toString(),也可不用
           if( strSession == "")
           {
              alert('请先登录');
              return false;
            }
        }
    2009年8月6日 8:38
    版主

全部回复

  • 你好,

    js操作不了session信息的,session是服务器端对象
    楼主可以考虑写监听器,在session过期的时候向客户端写cookie,javascript可以操作这个cookie
    jon.valett@gmail.com
    2009年8月6日 3:04
    版主
  • .net 能写监听器吗:没弄过呀:有资料吗》Thanks.....


    小吴
    2009年8月6日 3:10
  • 你好,在session过期的时候向客户端写cookie,然后用js写监听器,检查是否存在这个cookie,并操作!
    jon.valett@gmail.com
    2009年8月6日 3:11
    版主
  • 你好你可以在服务器端新建个实现IHttpHandler 的类,在web.config中进行相应配置,或者直接建个aspx文件在code.behind中做相应处理即可,然后在js中通过xmlhttp 发送请求,当然得把你需要检查的session的key发送过去,然后由服务器端返回session是否存在的responseText或者xml,然后再做进一步处理

    可以直接在服务器端的那个页面或者IHttpHandler进行判断是否存在
    Wenn ich dich hab’,gibt es nichts, was unerträglich ist.坚持不懈!http://hi.baidu.com/1987raymond
    2009年8月6日 3:19
    版主
  • 你在 PageLoad 的时候将 Session["Uid"] 写到一个 js 变量中,然后在 js 判断这个变量就行了,另外使用 ajax 也能做到
    知识改变命运,奋斗成就人生!
    2009年8月6日 4:02
    版主
  • 你要是想严格检测,请使用ajax,
    如果不严格,也可以这样
     if('<%=Session["uid"].ToString() %>' == "")

    【孟子E章】
    2009年8月6日 4:56
    版主
  • 由于你的checsessoin()不知道什么调用,所以,写在
    checsessoin()函数里面是存在误差的

    【孟子E章】
    2009年8月6日 4:57
    版主
  • 楼主,您好,您的代码其实逻辑没有问题,只是语法上有些问题。

    首先:.ToString()是c#语法,不是js语法,toString()才是。
    其次:<%=Session["uid"] %>这段代码表面上看是生成字符串,而实际上对于js来说,是定义了一个新变量。所以要表示字符串,则需要用单引号或双引号,像这样:"<%=Session["uid"] %>"。

    可执行代码请参考:

       function checsessoin()
       {
          var strSession = "<%=Session["uid"] %>".toString(); //可以用toString(),也可不用
           if( strSession == "")
           {
              alert('请先登录');
              return false;
            }
        }
    2009年8月6日 8:38
    版主
  • 改成这样可能合理些?

       function checsessoin()
       {
          var strSession = '<%=Session["uid"] %>'; //可以用toString(),也可不用
           if( strSession == "")
           {
              alert('请先登录');
              return false;
            }
        }
    Wenn ich dich hab’,gibt es nichts, was unerträglich ist.坚持不懈!http://hi.baidu.com/1987raymond
    2009年8月6日 8:40
    版主
  • Session的操作,还是由服务端技术来操作比较合适,而且功能非常强大。
    http://hi.baidu.com/2009ajun
    2009年8月6日 9:48