乐码库:一个极速、放心、纯净的下载站! 更新: 资源发布
  • 您的位置:首页 > 技术文档 > ASP编程 > ASP中用ajax方式获得session的实现代码
  • 收藏本页
      ASP中用ajax方式获得session的实现代码
      发布时间:2016-10-27 04:23:00 关键词: ajax,session
      内容简介:前期做的时候,登录方式顺手用了ajax来做,登录前先判断在session中是否存在值,如果存在,那么无需登录;如果不存在,那就弹出登录页面登录。
    由于我是用的ff浏览器,一直没发现什么问题。上个礼拜提交给用户看的时候,说用IE登录完之后无效,大惊。结果还真的是这样。。很囧
    登录代码如下:
     
    //从服务器查询是否存在session 
    j.ajax({ 
    type:"GET", 
    url:"sessioncheck.asp", 
    data:"", 
    timeout: 1000, 
    error: function(){ 
    alert('sorry, server is busy now!'); 
    }, 
    success:function(comments_data){ 
    if(comments_data == 1){ 
    el.createDialog(opts); 
    j.startOver(); 
    } 
    else{ 
    var sql = selectSQL(searchkey,stype); 
    window.location.href = sql; 
    } 
    } 
    }); 
    

    大致是这样 sessioncheck.asp里面无非就是去查session,代码如下:
     
    if session("username") = "" then 
    Response.Write("1") 
    else 
    Response.Write("2") 
    end if 
    

    结果就是用IE这个session("username")死活没有,timeout设置了也没用。
    去网上查了半天,发现同样问题的还挺多,最后查到原因:缓存问题。
    异步get获取时,如果url不变,是直接调用的缓存中的信息,然后就导致了一直获得不到session里的值。
    解决方法那很简单了,google "asp 清除缓存" 一大堆。
    最后是在sessioncheck.asp里添加了一段,如下:
     
    Response.Buffer =True 
    Response.ExpiresAbsolute =Now() - 1 
    Response.Expires=0 
    Response.CacheControl="no-cache" 
    if session("username") = "" then 
    Response.Write("1") 
    else 
    Response.Write("2") 
    end if 
    
      最新更新
      热门排行榜