javascript/Ajax仅在调试时工作
我想在用户关闭浏览器时删除用户会话和相关数据。我参考了这篇()文章,我有一些代码如下。我想在用户关闭浏览器时从应用程序状态和SQL server数据库中删除用户数据。我是在一个管理者的帮助下做这件事的。 下面的代码在调试时运行良好,它正在调用处理程序并执行我在其中编写的所有代码。但当我真的使用这个应用程序时,它不起作用。我不知道问题出在哪里。它正在消耗我的时间。 (我在母版页的内容中使用此选项)javascript/Ajax仅在调试时工作,javascript,asp.net,ajax,Javascript,Asp.net,Ajax,我想在用户关闭浏览器时删除用户会话和相关数据。我参考了这篇()文章,我有一些代码如下。我想在用户关闭浏览器时从应用程序状态和SQL server数据库中删除用户数据。我是在一个管理者的帮助下做这件事的。 下面的代码在调试时运行良好,它正在调用处理程序并执行我在其中编写的所有代码。但当我真的使用这个应用程序时,它不起作用。我不知道问题出在哪里。它正在消耗我的时间。 (我在母版页的内容中使用此选项) window.onbeforeunload=confirmExit; 函数confirmExit()
window.onbeforeunload=confirmExit;
函数confirmExit(){
var UserID='';
$.ajax({
类型:“POST”,
url:“../../Handlers/HandlerUser.ashx?Action=RemoveUserDataOnBrowserClose&UserID=“+UserID.toString(),
contentType:“应用程序/json;字符集=utf-8”,
async:false,
成功:功能(数据){
}
});
}
如果有人能提出另一种方法来实现同样的目标,那将是一个很大的帮助 我猜它不起作用,因为它是异步调用。 函数在调用发生之前退出 我建议您中断关闭操作,清除数据库中的数据,然后在回调中以编程方式调用关闭事件
我发现这个可能对你有帮助。最后我得到了答案。我的问题是我的处理程序没有调用,这是因为我没有将表单身份验证添加到我的应用程序中。我在身份验证后添加了这段代码,效果很好
FormsAuthentication.RedirectFromLoginPage(UserID, false);
我不知道这是必要的。谢谢大家的帮助。如果不调试,您如何确保它不工作?您是否记录了httphandler内部发生的事情?谢谢您的回复。。处理程序必须从数据库中删除它没有执行的数据…我建议这样做。一个高度灵活的.neti日志实用程序如果你手动调用url,它会删除数据吗?当我调试时,它会删除。。。我设置了断点并进行了检查。这是很好的工作,然后…我想我已经做了你建议的职位相同。我们能同步进行吗?
FormsAuthentication.RedirectFromLoginPage(UserID, false);