ASP中用ajax方式获得session的实现代码
前个月朋友接【péng yǒu jiē】到一个asp的私活,于是就【jiù】做了【zuò le】📧。
技术方面没什么难点🈂,asp虽然以前没怎🏝么写过,可是看💉看书也🌎就【jiù】OK了📧。
基本全部做完后,出了一🙃个bug。
前期做🤠的时候,登录方【dēng lù fāng】❕式顺手🐗用了【yòng le】📧ajax来做,登录【lù】前♍先判断【xiān pàn duàn】在【zài】🌙session中是否存在【zài】🌙值【zhí】,如果存【rú guǒ cún】在【zài】🌙,那么无【nà me wú】需登录【xū dēng lù】🚌;如果不存在【zài】🌙,那就【jiù】弹出登录【lù】🎡页面登【yè miàn dēng】录【lù】。
由于我是用的ff浏览器,一直没【yī zhí méi】发现什么问题。上个礼😨拜提交👽给用户😣看的时【kàn de shí】候,说用IE登录完【dēng lù wán】❎之后无【zhī hòu wú】效🔅,大惊【dà jīng】。结果还【jié guǒ hái】真的是这样。。很囧💣
登录代🧀码如下【mǎ rú xià】:
- //从服务🔴器查询【qì chá xún】是否存在【zài】🥞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;
- }
- }
- });
//从服务【cóng fú wù】器查询【qì chá xún】是否存📣在【zài】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;
}
}
});
大致是🎪这样【zhè yàng】 sessioncheck.asp里面无【lǐ miàn wú】非就是【fēi jiù shì】去查session,代码如【dài mǎ rú】⛑下👶:
- if session("username") = "" then
- Response.Write("1")
- else
- Response.Write("2")
- end if
结果就【jié guǒ jiù】是用【shì yòng】IE这个session("username")死活没有🕝,timeout设置了【shè zhì le】也没用【yě méi yòng】🚳。
去网上🍖查了半天,发现同🥠样问题【yàng wèn tí】🏉的还挺【de hái tǐng】多,最后查💜到原因【dào yuán yīn】🌌:缓存🥓问题🐚。
异步🎟get获取时【huò qǔ shí】,如果url不变📩,是直接调用的缓存🥓中的信息,然后就【rán hòu jiù】导致了一直获🏡得不到session里的值。
解决方法那很简单了,google "asp 清除缓存🥓" 一大堆。
最后是在💢sessioncheck.asp里添加【lǐ tiān jiā】了一段【le yī duàn】🐌,如下:
- 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
Response.Buffer =True Response.ExpiresAbsolute =Now() - 1
关键词【guān jiàn cí】😱:ASP,ajax,session
阅读本文后您有什么感想? 已有 人给出评价!
- 0
- 0
- 0
- 0
- 0
- 0