国语自产精品视频在线看:您身边最放心的安全下载站! 最新软件|热门排行|软件分类|软件专题|厂商大全

国语自产精品视频在线看

技术教程
您的位置:首页网络编程Asp编程 → ASP中用ajax方式获得session的实现代码

ASP中用ajax方式获得session的实现代码

我要评论 2011/05/28 21:09:18 来源:国语自产精品视频在线看 编辑:downcc.com [ ] 评论:0 点击:345次

前个月朋友接【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à】: 

Java代码
  1. //从服务🔴器查询【qì chá xún】是否存在【zài】🥞session   
  2.         j.ajax({   
  3.         type:"GET",   
  4.         url:"sessioncheck.asp",   
  5.         data:"",   
  6.         timeout: 1000,   
  7.         error: function(){   
  8.                     alert('sorry, server is busy now!');   
  9.                 },   
  10.         success:function(comments_data){   
  11.             if(comments_data == 1){   
  12.                 el.createDialog(opts);   
  13.                         j.startOver();   
  14.                     }   
  15.             else{   
  16.                 var sql = selectSQL(searchkey,stype);   
  17.                 window.location.href = sql;   
  18.             }   
  19.         }   
  20.     });  

//从服务【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ú】⛑下👶:

Java代码
  1. if session("username") = "" then   
  2.         Response.Write("1")   
  3.     else  
  4.         Response.Write("2")   
  5.     end if  
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】🐌,如下:

Java代码
  1. Response.Buffer =True   
  2.   Response.ExpiresAbsolute =Now() - 1  
  3.   Response.Expires=0  
  4.   Response.CacheControl="no-cache"  
  5.     if session("username") = "" then   
  6.         Response.Write("1")   
  7.     else  
  8.         Response.Write("2")   
  9.     end if  

Response.Buffer =True Response.ExpiresAbsolute =Now() - 1

关键词【guān jiàn cí】😱:ASP,ajax,session

阅读本文后您有什么感想? 已有 人给出评价!

  • 0 欢迎喜欢
  • 0 白痴
  • 0 拜托
  • 0 哇
  • 0 加油
  • 0 鄙视