注册 登录
编程论坛 jQuery论坛

关于 ajax 为 session 赋值成功可是 session 值为什么为空啊 重新修改下请大神们分解下

tbq513001 发布于 2014-09-13 06:27, 4813 次点击
上面说到就是制作了一个贴吧.主要的就是要发贴就必须要登录之后才能发表贴子 ,做了两个简单实现文件   发表文件 abc.asp  后台文件 123.asp :
abc.asp  中就只有两个按钮  一个是登录,一个是发表

   首先我打开abc.asp 后也就是未登录,里面的<%=session("quan")%>那就是等于空,所以点发表时就会弹出请登录的提示框,那么要发贴那就先登录吧.好/点登录吧
由于使用的是ajax登录,所以在abc.asp页面中调用123.asp文件,123.asp文件中就是给session("quan")赋值为"兵权",并输出session("quan")  所以返回"兵权"
就在登录下面出现登录成功后显示的用户名"兵权"
    现在我已经登录了是不是可以发表
帖子了,可是点击时弹出的却还是为请登录,也就是说session("quan")在abc.asp这个网页中的值并没有随着登录后而改变.
当我刷新下abc.asp这个网页后,再点发表时弹出的就是"兵权"了,所以就是要刷新下网页abc.asp中的sission("quan")才有值,如果是这样那就不用搞ajax无刷新登录了,还不如直接用
asp表单登录的好.不知道各位高人们有没有遇到过这种情况或者是不是有很好的解决的方法.先谢谢各位高手了.... 两个文件如下:

abc.asp

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
<script>
function Ajax(){
   var xmlHttpReq;
   if (window.ActiveXObject){
      xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
      }
   else if (window.XMLHttpRequest){
      xmlHttpReq = new XMLHttpRequest();
      }
   if (xmlHttpReq != null){
      xmlHttpReq.open("post","123.asp");
      xmlHttpReq.onreadystatechange = cxs;
      xmlHttpReq.send(null);
      }
   function cxs(){
   if (xmlHttpReq.readyState == 4 && xmlHttpReq.status == 200){
   document.getElementById("target").innerHTML = xmlHttpReq.responseText;
   }
 }
}
</script>
<script>
function  ack(){
var strSession = "<%=Session("quan") %>".toString();        
      if( strSession == "")        
      {           
      alert('请先登录');         
       return false;  
        }
        else {
        alert
        ("<%=session("quan")%>")
        return false;
        }
}
</script>
</head>

<body>
<input name="" type="button" value="登录" onclick="Ajax();" />
<input name="" type="button" value="发表" onclick="ack();" />
<div id="target"><%=session("quan")%></div>
</body>
</html>



123.asp

<%
response.charset="GB2312"
session("quan")="兵权"
response.Write""&session("quan")&""
%>
2 回复
#2
蝙蝠之殇2015-03-17 18:06
你现在用的是同步机制的ajax,当用户点击发帖的时候,可能获取到的值还没有赋给dom元素(target);使用异步机制的ajax就可以解决这个问题了
#3
ahjbliss12015-04-05 18:00
话说   xmlHttpReq.open("post","123.asp");这个默认是同步吗? 语法不是XMLHtttpRequest.open(reqType,url,ture/false);true 异步,false同步
1