前个月朋友接到一个asp的私活,于是就做了。
技术方面没什么难点,asp虽然以前没怎么写过,可是看看书也就OK了。
基本全部做完后,出了一个bug。
前期做的时候,登录方式顺手用了ajax来做,登录前先判断在session中是否存在值,如果存在,那么无需登录;如果不存在,那就弹出登录页面登录。
由于我是用的ff浏览器,一直没发现什么问题。上个礼拜提交给用户看的时候,说用IE登录完之后无效,大惊。结果还真的是这样。。很囧
登录代码如下:
//从服务器查询是否存在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;
}
}
});
大致是这样 sessioncheck.asp里面无非就是去查session,代码如下:
if session("username") = "" then
Response.Write("1")
else
Response.Write("2")
end if
结果就是用IE这个session("username")死活没有,timeout设置了也没用。
去网上查了半天,发现同样问题的还挺多,最后查到原因:缓存问题。
异步get获取时,如果url不变,是直接调用的缓存中的信息,然后就导致了一直获得不到session里的值。
解决方法那很简单了,google "asp 清除缓存" 一大堆。
最后是在sessioncheck.asp里添加了一段,如下:
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
小问题真是搞死人。。
分享到:
- 2009-02-24 00:43
- 浏览 1700
- 评论(0)
- 论坛回复 / 浏览 (0 / 2632)
- 查看更多
相关推荐
在ASP(Active Server Pages)开发中,使用Ajax(Asynchronous JavaScript and XML)技术与服务器进行...这样,无论使用何种浏览器,Ajax请求都会正确地从服务器获取最新Session信息,从而避免了登录验证失败的问题。
而在这个特定的场景中,"MVC4中用Ajax带省略号分页"指的是在实现Ajax分页的同时,还在页码显示区域加入了省略号来指示更多未显示的中间页码,这种设计可以有效地节省界面空间,同时让用户对总页数有一个大致的概念。...
在.NET中,我们可以使用ASP.NET AJAX Control Toolkit中的AutoCompleteExtender控件,配合Web Service或PageMethod来实现输入框的智能提示功能。客户端JavaScript会发送请求到服务器获取匹配的建议列表,并动态填充...
在ASP.NET开发中,构建一个网站常常涉及到左侧菜单与右侧内容区域的交互设计。这个设计模式常见于各种管理后台或信息展示平台,用户通过点击左侧菜单来切换右侧显示的具体内容。"Q753697 asp.net中点击左侧菜单,...
8. **状态管理**:在ASP.NET中,有多种方式管理Web应用程序的状态,如视图状态、控制状态、Session状态和Cookie等。 9. **生命周期和事件**:了解ASP.NET页面和控件的生命周期以及相关的事件,对于调试和优化代码至...
ADO(ActiveX Data Objects)是ASP中用于数据库操作的接口,通过它,开发者可以执行SQL查询、处理结果集以及进行数据更新。 五、错误处理和调试 了解ASP的错误处理机制有助于编写健壮的代码。通过使用On Error语句...
ASP.NET提供了多种状态管理机制,包括视图状态(View State)、隐藏字段、Cookie、Session、Application和Cache等,用于在页面间或会话间保存数据,确保用户体验的连贯性。 5. **数据绑定** 数据绑定是ASP.NET中...
ADO(ActiveX Data Objects)是ASP中用于数据库访问的组件,包括Connection、Command、Recordset等对象。 - 连接数据库:使用Connection对象建立与数据库的连接,配置连接字符串,如:"Provider=MSDASQL;Driver={...
在这一章,作者详细讲解了ASP.NET中的一些重要内置对象,如Request、Response、Session、Application等,这些对象在实际开发中起着至关重要的作用,帮助开发者处理HTTP请求、响应、会话管理和应用程序级共享数据。...
6. **状态管理**:由于HTTP的无状态特性,ASP.NET需要一种方式来保持用户绘图的状态,这可能通过ViewState、Session或Cookie实现。 7. **响应式设计**:如果这个示例考虑到了不同设备和屏幕尺寸,那么还可能包含...
8. **AJAX**:ASP.NET支持使用AJAX(Asynchronous JavaScript and XML)技术实现页面部分更新,提高用户体验。 9. **部署**:了解如何配置IIS服务器并发布ASP.NET应用至生产环境是开发流程的一部分。 10. **数据库...
状态管理是ASP.NET中的另一个关键概念,包括视图状态(View State)、隐藏字段、cookie和会话状态(Session State)等,它们用于在页面间保持数据。 4. **Web表单与身份验证** ASP.NET 2.0引入了Web表单模型,使得...
App_Data是ASP.NET应用中用于存储非文件系统数据的目录,例如数据库文件(如SQL Server的.mdf文件)或其他数据文件。 综上所述,这个压缩包提供了一个完整的示例,演示了如何在ASP.NET环境中使用jQuery进行客户端...
8. **AJAX**:可能利用ASP.NET AJAX技术实现部分页面刷新,提高用户体验。例如,用户发表留言后,无需刷新整个页面即可看到新的留言。 9. **部署和配置**:学会将项目部署到IIS服务器,并进行必要的配置,如数据库...
本章将探讨不同的数据绑定策略及其在ASP.NET中的实现方式。 ##### 16. 数据控件 这部分内容介绍了ASP.NET中用于显示和编辑数据的各种控件,如GridView、DetailsView等,以及如何使用这些控件来创建强大的数据展示...
2. ADO(ActiveX Data Objects):ASP中用于数据库操作的重要组件,可以连接和查询各种数据库。 3. URL路径和查询字符串:了解如何在ASP中处理URL参数和路径,以便正确地传递和接收信息。 4. 错误处理和调试:学会在...
清除在验证码中用到的Session。 2)public virtual Bitmap GetBitmap(string codeText, ImageStyle imgStyle): 获取验证码图像。在继承的类中可重载该方法,以自定义绘制图片。 参数说明: string codeText:...
8. **AJAX技术**:通过jQuery和ASP.NET AJAX库,可以实现页面的部分刷新,提高用户体验,比如异步数据加载和无刷新操作。 9. **Web Services和API**:如果办公自动化系统需要与其他系统集成,可能需要用到Web ...
6. **状态管理**:Asp.net提供了多种状态管理机制,如Session、ViewState、Cookie等,可能会在源码中用到,以保持用户会话信息。 7. **响应处理**:服务器端代码处理请求后,会返回一个响应,这可能包括重新加载...