难道这个问题很难么?去ASP版顶了4天无人知晓.只好来这里砰砰运气

KAI3000 2005-12-28 09:20:59
希望获得session登录状态下,

通过xmlHttp得到asp页面(需要session登录)解析后的HTML代码

比如一个论坛,
没有登录的解析结果是“请登录……”,
而登录后的解析的是“欢迎……”
...全文
166 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
KAI3000 2006-01-01
  • 打赏
  • 举报
回复
我知道了,不是xmlhttp的问题,是缓存的问题,

登陆之后,xmlhttp读的是缓存.

我用了Math.random()加载url后边,这样每次就等于读取最新的页面,去掉了缓存.
代码如下:
index.html---------------------------------------------
<html>
<head>
</head>
<body>
<script language=javascript>
function getData(url){
var xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");
xmlhttp.open("get",url+"?"+Math.random(),true);
xmlhttp.onreadystatechange = function(){
if(xmlhttp.readyState == 4){
var oLabel=document.all('dTable_itemPanel');
oLabel.innerHTML=xmlhttp.responseText;
}
};
xmlhttp.send();
}
</script>
<input type=button value=test onclick="getData('test.asp')">
<div id=dTable_itemPanel></div>

<a href="login.asp">登陆</a>
<a href="logout.asp">退出</a>
</body>
</html>

login.asp------------------------------------
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<%
session("user")="kai.ma"
server.transfer("index.html")
%>

logout.asp------------------------------------
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<%
session("user")=""
session.Abandon()

server.Transfer("index.html")%>

test.asp--------------------------------------
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<%
Response.Clear
Response.CharSet="gb2312"
Response.Write typename(session("user"))
Response.Write "<br/>aaa<br/>"

if session("user")<>"" then
Response.write "<font color=red>"&session("user")&"</font>"
else
Response.write "未登录"
end if
Response.End
%>



==================================================

最后感谢 ssm1226(雨中人@忙晕了) 让我肯定了xmlhttp可以在session状态下读取页面.


KAI3000 2005-12-31
  • 打赏
  • 举报
回复
Mark 回去研究研究。

原来cds27(冰封)斑竹一向都是这么回答兄弟们问题的啊:)失敬。

感谢 ssm1226(雨中人@忙晕了) ,解决了我几天的困惑。
cds27 2005-12-30
  • 打赏
  • 举报
回复
靠!要不是斑竹的身份,我真想骂你!
你做不出来是你自己水平的问题。
我能实现,那就叫说大话?!
脑子进水!
既然你认为不能实现,那你还来发什么帖子?
ssm1226 2005-12-30
  • 打赏
  • 举报
回复
讨论问题,大家都冷静点:)


------------------------------------------


以下几个文件可以作测试:

1.index.htm----->getData.htm 点击按键,会显示"未登录"

2.index.htm----->login.asp----->getData.htm 点击按键,会显示红色的"ssm1226"

index.htm:

<body>
<a href='login.asp'>登录</a><hr>
<a href='getData.htm'>测试</a>
</body>



login.asp
<body>

<%
session("user")="ssm1226"
%>
<a href='getData.htm'>测试</a>
</body>



getData.htm
<body>
<script language=javascript>
function getData(url){
var xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");
xmlhttp.open("get",url,true);
xmlhttp.onreadystatechange = function(){
if(xmlhttp.readyState == 4){
var oLabel=document.all('dTable_itemPanel');
oLabel.innerHTML=xmlhttp.responseText;
}
};
xmlhttp.send();
}
</script>
<input type=button value=test onclick="getData('c.asp')">
<div id=dTable_itemPanel></div>
</body>



c.asp:

<body>
<%
Response.Clear
Response.CharSet="gb2312"
Response.Write typename(session("user"))
Response.Write "<br>aaa<br>"

if session("user")<>"" then
Response.write "<font color=red>"&session("user")&"</font>"
else
Response.write "未登录"
end if
Response.End
%>


</body>
KAI3000 2005-12-29
  • 打赏
  • 举报
回复
to leeyc_zulu() :
sessionID都不能相同的。。肯定返回未登陆了。。

是什么意思?是说sessionID在客户端表现为cookie形式?每次开一个网页,这个cookie都不同,对吗?
ssm1226 2005-12-29
  • 打赏
  • 举报
回复
没问题,可以实现.........
cds27 2005-12-29
  • 打赏
  • 举报
回复
有什么问题吗?
跟一般的xmlhttp操作没什么区别。
ssm1226 2005-12-29
  • 打赏
  • 举报
回复
同一站点下?
巡山小校 2005-12-29
  • 打赏
  • 举报
回复
sessionID都不能相同的。。肯定返回未登陆了。。

就算你登陆以后,再新打开个浏览器窗口去看,session都不会相同的。。

别想这个了。。
KAI3000 2005-12-29
  • 打赏
  • 举报
回复
请教 ssm1226(雨中人@忙晕了)

怎么实现咧?
KAI3000 2005-12-29
  • 打赏
  • 举报
回复
别说大话,cds27(冰封) 你试过就知道了,无论怎样,通过xmlHTTP得到的HTML代码,都是未登陆状态下的。

8,906

社区成员

发帖
与我相关
我的任务
社区描述
XML/XSL相关问题讨论专区
社区管理员
  • XML/XSL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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