if (context.Request.QueryString["type"] != null)//登陆
        {
            KyLaw.BLL.KY_USER user = new KyLaw.BLL.KY_USER();
            string name=context.Request.QueryString["name"].ToString(); 
            string pwd=context.Request.QueryString["pwd"].ToString();
            if (user.GetDengLu(name,pwd).Tables[0].Rows.Count > 0)//成功登陆
            {
                context.Session["UserName"] = model.USER_NAME;
                context.Session["UserType"] = model.USER_TYPE;
                context.Response.ContentType = "text/plain";
                context.Response.Write("1");
            }
            else//登陆失败
            {
                context.Response.ContentType = "text/plain";
                context.Response.Write("0");
            }
        }
        if (context.Request.QueryString["close"] != null)//退出
        { 
            context.Session.Clear();
            context.Response.ContentType = "text/plain";
            context.Response.Write("1");
        }
这是ashx里面的代码    前台无刷新jquery调用!
登陆成功   显示一个层    退出111
我点这    退出111    就jquery无刷新   退出    并刷新页面。window.location = "Default.aspx";问题:   我第一次登陆成功    不管怎么按F5都没问题,   但我点退出,再登陆,     登陆成功后,只要按一次F5,页面就跳到未登陆的状态了!  
“显示XXX登陆成功!”这句话就没了。
大侠们帮帮我吧。无以为报,200分送上! 

解决方案 »

  1.   

    //登陆
    $(function() {
                $("#btnLogin").click(function() {
                    $.ajax({
                        type: "get",
                        url: "docInfo/Doc_Upload.ashx",
                        data: { user: $("#txtUser").val(), pwd: $("#txtPwd").val() },
                        dataType: "plain",
                        success: function(data) {
                            if (data == '1') {
                                $("#divNo").hide();
                                $("#divOk").show();
                                $("#divName").html("您好!" + $("#txtUser").val());
                                $("#divLogin").hide();
                            }
                            else {
                                alert("用户名或密码错误!");
                                $("#txtUser").val("")
                                $("#txtPwd").val("")
                            }
                        }
                    });
                });
            });
            //退出
            $(function() {
            $("#back").click(function() {
                    $.ajax({
                        type: "get",
                        url: "docInfo/Doc_Upload.ashx",
                        data: { close:"1"},
                        dataType: "plain",
                        success: function(data) {
                        window.location = "Default.aspx";
                        }
                    });
                });
            });这是前台页面代码
      

  2.   

    你发现你的登陆成功和 退出返回的都是1 么?
     context.Response.Write("1");
      

  3.   


    我退出的时候   那个1都没用。  只是做摆饰的。success: function(data) {
                        window.location = "Default.aspx";
                        }
      

  4.   

    登陆->点退出 - 清空浏览器缓存 - 在登陆 刷新下 看有firedebug没?
      

  5.   

    登陆成功后,只要按一次F5,页面就跳到未登陆的状态了你的页面是不是一进来就是按未登陆来显示的,你是否觉得在显示UI时有必要分两种情况呢?
    if(!Page.IsPostBack)
    {
        if(Session["UserName"] != null)
              // JS: divNo.hide(); divLogin.hide(); divOk").show();
    }当然你也可以使用PlaceHolder.Visible来控制
      

  6.   


    function Fast_Login(uNameId,uPassId,datatype){
    if(!datatype) datatype = 0;
    var uName = (datatype==0)?$("#"+uNameId).val():uNameId;
    var uPass = (datatype==0)?$("#"+uPassId).val():uPassId;
    //alert(uName + "|" + uPass);
    if($.trim(uName).length<1 || $.trim(uPass).length<1) {
    alert("请输入用户邮箱(或用户名)和密码。");
    return false;
    }
    AjaxSubmit(
    null,
    "/index.aspx?s=/User/FastUserLogin/&IsAdd=101",   路径处理+参数
    {"username":uName,"password":uPass},
    function(msg){ 
    if(msg==1){
    AjaxLoginBoxClose();  //弹出提示框
    Fast_GetUserInfo();  获得用户信息

    else 
    {
    ShowErrorMsg("用户登陆有误,可能的原因:\r\n\r\n\t1.用户名或密码错误;\r\n\t2.网络故障.","会员登陆");//。

    }
    },null
    //function(msg){ShowErrorMsg("用户登陆有误:"+(msg.responseText?msg.responseText:"ErrorAjax") +"。");}
    );
    return true;
    }
    这个是我写的,希望对你有帮助
      

  7.   

    这种类似的情况我也遇见过 首选的解决办法是 把SESSION换成COOKies 问题迎刃而解
    其次 
    context.Response.Write("1");
    问题可能出在你这句话上 你是不是 AJXA读这个页面的内容了 是1判断登陆成功 是吧 
    这就出问题了 因为这个页面不会刷新 你第一次登陆成功了 他永远是1 就算你第二次登陆失败了 他也是1因为ashx 就这样  你换成aspx页面 加上
     if (!IsPostBack)
            {}
    但这样 如果前台调用不当 也会出现永远是1的情况 但你可先试试当然最好的办法是 cookies 然后 其他页面判断cookise是否存在 
      

  8.   


    我发现我第一次登陆,无刷新掉后台方法,退出后再登陆,就不调ajax方法。但是换个帐号登陆,又会调ajax方法。如果我换个用户登陆,点退出按钮没反应。
      

  9.   

    如LS所说,不妨在ASHX加上一句Response.Cache.SetNoServerCaching();再试
    登陆还退出不了了,你用IE开发工具或者Firedebug高度下JS吧
      

  10.   

    应该是本机缓存的问题,一是要在后台ashx页面中加入过期时间为0,不缓存等语句。二是在前台ajax中加一个随机数变量传过去,用当前系统时间也行。
      

  11.   


    juqery里面的get方法  只会第一次像后台发送请求 第二次就不发送了 所以取数据列表用get  跟后台C#交互 还是用post 比较好改成post就可以了  我以前也遇见过
      

  12.   

    get改成post就好了谢谢大家的帮助。
    我还没理会到get和post的真正区别啊。唉。结贴给分!!!再次谢谢大家了!!!!
      

  13.   

       string str = File.ReadAllText(Server.MapPath("txttxt.txt"), Encoding.GetEncoding("gb2312"));
                Regex reg = new Regex(@"(?s)<li>\s*所在地区:((?:(?!</?li).)*)");
                foreach (Match m in reg.Matches(str))
                    Response.Write(m.Groups[1].Value);