jquery登陆问题! 大侠们帮帮我吧!~ 只能给200分!

yue547283947 2011-07-18 07:51:20
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分送上!
...全文
252 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
a3848009771 2011-07-23
  • 打赏
  • 举报
回复
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);



confidenceyu 2011-07-21
  • 打赏
  • 举报
回复
顶楼上,来晚了,接分了
yue547283947 2011-07-19
  • 打赏
  • 举报
回复
get改成post就好了。。。谢谢大家的帮助。


我还没理会到get和post的真正区别啊。。。。唉。



结贴给分!!!再次谢谢大家了!!!!
lijing3333 2011-07-19
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 yue547283947 的回复:]
引用 14 楼 kiba518 的回复:
200分呀 流口水~~等待楼主结贴~~~~呵呵


我发现我第一次登陆,无刷新掉后台方法,退出后再登陆,就不调ajax方法。但是换个帐号登陆,又会调ajax方法。

如果我换个用户登陆,点退出按钮没反应。
[/Quote]

juqery里面的get方法 只会第一次像后台发送请求 第二次就不发送了

所以取数据列表用get 跟后台C#交互 还是用post 比较好

改成post就可以了 我以前也遇见过。。。
mayanly 2011-07-19
  • 打赏
  • 举报
回复
退出时清除session并跳转页面
hwbox 2011-07-19
  • 打赏
  • 举报
回复
应该是本机缓存的问题,一是要在后台ashx页面中加入过期时间为0,不缓存等语句。二是在前台ajax中加一个随机数变量传过去,用当前系统时间也行。
  • 打赏
  • 举报
回复
如LS所说,不妨在ASHX加上一句Response.Cache.SetNoServerCaching();再试
登陆还退出不了了,你用IE开发工具或者Firedebug高度下JS吧
yue547283947 2011-07-19
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 kiba518 的回复:]
200分呀 流口水~~等待楼主结贴~~~~呵呵
[/Quote]

我发现我第一次登陆,无刷新掉后台方法,退出后再登陆,就不调ajax方法。但是换个帐号登陆,又会调ajax方法。

如果我换个用户登陆,点退出按钮没反应。
kiba518 2011-07-19
  • 打赏
  • 举报
回复
200分呀 流口水~~等待楼主结贴~~~~呵呵
a764777416 2011-07-19
  • 打赏
  • 举报
回复
get改为post试试
Lay 2011-07-19
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 ailiku1988 的回复:]
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(u……
[/Quote]

学习一下。
kiba518 2011-07-19
  • 打赏
  • 举报
回复
这种类似的情况我也遇见过 首选的解决办法是 把SESSION换成COOKies 问题迎刃而解
其次
context.Response.Write("1");
问题可能出在你这句话上 你是不是 AJXA读这个页面的内容了 是1判断登陆成功 是吧
这就出问题了 因为这个页面不会刷新 你第一次登陆成功了 他永远是1 就算你第二次登陆失败了 他也是1

因为ashx 就这样 你换成aspx页面 加上
 if (!IsPostBack)
{}

但这样 如果前台调用不当 也会出现永远是1的情况 但你可先试试

当然最好的办法是 cookies 然后 其他页面判断cookise是否存在
kiss筱魔 2011-07-19
  • 打赏
  • 举报
回复

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;
}
这个是我写的,希望对你有帮助
yue547283947 2011-07-19
  • 打赏
  • 举报
回复
楼上的看清楚点哦。。。。。1楼就是我的代码! 只是我补充的。。。。
hualoveqi 2011-07-19
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 yue547283947 的回复:]
C# code

//登陆
$(function() {
$("#btnLogin").click(function() {
$.ajax({
type: "get",
url: "docInfo/Doc_Upload.ashx",
……
[/Quote]
正解!!
yue547283947 2011-07-19
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 dongxinxi 的回复:]
登陆成功后,只要按一次F5,页面就跳到未登陆的状态了

你的页面是不是一进来就是按未登陆来显示的,你是否觉得在显示UI时有必要分两种情况呢?
if(!Page.IsPostBack)
{
if(Session["UserName"] != null)
// JS: divNo.hide(); divLogin.hide(); divOk").show();
}

当然你也……
[/Quote]

我后台都没写代码。。。。
  • 打赏
  • 举报
回复
登陆成功后,只要按一次F5,页面就跳到未登陆的状态了

你的页面是不是一进来就是按未登陆来显示的,你是否觉得在显示UI时有必要分两种情况呢?
if(!Page.IsPostBack)
{
if(Session["UserName"] != null)
// JS: divNo.hide(); divLogin.hide(); divOk").show();
}

当然你也可以使用PlaceHolder.Visible来控制
子夜__ 2011-07-18
  • 打赏
  • 举报
回复
登陆->点退出 - 清空浏览器缓存 - 在登陆 刷新下 看

有firedebug没?

yue547283947 2011-07-18
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wxr0323 的回复:]
你发现你的登陆成功和 退出返回的都是1 么?
context.Response.Write("1");
[/Quote]

我退出的时候 那个1都没用。。。。 只是做摆饰的。。。。

success: function(data) {
window.location = "Default.aspx";
}
子夜__ 2011-07-18
  • 打赏
  • 举报
回复
你发现你的登陆成功和 退出返回的都是1 么?
context.Response.Write("1");
加载更多回复(2)

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧