window.onbeforeunload() 事件调用ajax的解决方法

 1 function window.onbeforeunload() {
 2
 3     var jhid = $("#ctl00_ContentBody_hfGuid").val();
 4     $.ajax({
 5         url: "AjaxServices/AjaxService.asmx/DeleteDeviceAndWorkContent", // ajax 调用后台方法
 6         type: "POST",
 7         async: false,
 8         data: "{'jhid':'" + jhid + "'}", // 参数
 9         dataType: "json", // 返回类型
10         contentType: "application/json; charset=utf-8",
11         //成功时调用的方法
12         success: function(data) {
13         },
14         error: function(XMLHttpRequest, textStatus, errorThrown) {
15             alert(XMLHttpRequest);
16             alert(textStatus);
17             alert(errorThrown);
18         }
19     });
20
21 }

解决方法:

使用ajax,设置为同步,不要使用异步(上面代码红色显示!)

时间: 2024-12-22 23:22:52

window.onbeforeunload() 事件调用ajax的解决方法的相关文章

浅谈window.onbeforeunload() 事件调用ajax_jquery

经常有这样的需求,就是在离开某个web页面时,用户不一定点注销,这样会导致会话不能及时销毁.为实现用户离开页面时,自动注销功能,需要在web页面的onbeforeunload事件处理函数中发送注销命令.这个地方大多用Ajax实现.有时还涉及到跨域访问的问题.这个地方就存在浏览器的兼容性问题. 浏览器在处理这个需求时的不兼容性有如下两点: 1.处理Ajax时的不兼容性,这里使用jQuery来解决. 2.在发送Ajax请求时的不兼容性 主要代码如下: function logout() { var

关于jquery中动态增加select,事件无效的快速解决方法_jquery

近来做项目,用的jquery1.6.2库,当动态增加div 及select时,事件却不起作用. 查了一些资料,发现bind事件:向匹配元素附加一个或更多事件处理器.而live事件:为当前或未来的匹配元素添加一个或多个事件处理器. 其资料如下: [bind和live的区别] live方法其实是bind方法的变种,其基本功能就同bind方法的功能是一样的,都是为一个元素绑定某个事件,但是bind方法只能给当前存在的元素绑定事件,对于事后采用JS等方式新生成的元素无效,而live方法则正好弥补了bin

浅谈jQuery绑定事件会叠加的解决方法和心得总结_jquery

关于jQuery的学习中我忽略了一个取消绑定事件.unbind()的使用,也不知道绑定事件会累加的情况,结果因为这个原因,让我在项目上栽了坑.只能说自己还太年轻,需要学习掌握的知识还有很多. 我遇到的问题 我在项目中遇到的状况,一个评价页面,简单的来说就是左右两个表格,ajax分别动态加载学生姓名学号信息和不同科目对学生评价内容两部分,两边表格我都每行写了checkbox并对table tbody tr绑定click事件执行行选功能,起初我写的是静态页面html,行选功能完全没有问题,后来换成j

js实现window.open不被拦截的解决方法汇总_javascript技巧

本文实例讲述了js实现window.open不被拦截的解决方法.分享给大家供大家参考.具体分析如下: 一.问题: 今天在处理页面ajax请求过程中,想实现请求后打开新页面,就想到通过 js window.open 来实现,但是最终都被浏览器拦截了. 二.分析: 在谷歌搜索有没有解决方法,有些说可以通过新建a标签,模拟点击来实现,但是测试发现都实现不了,照样被浏览器拦截. 最后找到了一个折中的办法,可以实现新页面打开,但是没有a标签的那种直接流量新页面的效果. 三.实现代码: 复制代码 代码如下:

easyui window refresh 刷新两次的解决方法(推荐)_javascript技巧

这样写刷新两次 $("#windowid").window('refresh','url01.php'); $("#windowid").window('open'); 这样写刷新一次     $("#windowid").window('open'); $("#windowid").window('refresh','url01.php'); 以上这篇easyui window refresh 刷新两次的解决方法(推荐)就是

动态生成的DOM不会触发onclick事件的原因及解决方法_jquery

最近朋友在做一个项目的时候,遇到动态加载微博内容,然后点击"展开评论"后获取该微博的所有评论.这里使用了动态加载的<span mid='123456789′ class='get_comment'>点击加载评论</span>. 然后再写 $(".get_comment).click(function(){ //响应事件逻辑 }) 发现click事件并不会触发,使用控制台侦听也木有错误.百思不得其解时, 因为我在以前做搜狐家居商城的运费管理时,也曾遇到,

ASP.NET中AJAX乱码解决方法

ajax乱码是一个程序员经常会碰到的问题,今天我们要讲的是关于asp教程.net中ajax乱码解决方法哦,下面先详细的介绍了处理方法,然后再举例说明 利用asp.net教程 string s = system.text.encoding.utf8.getstring(request.binaryread(request.contentlength));   system.collections.specialized.namevaluecollection form = httputility.

js中class的点击事件没有效果的解决方法_javascript技巧

如下所示: $(".xx").clcik(function(){····}); 本来不用js生成类,是有点击效果的一但js里写,就没有点击效果了,如下: 做如下修改即可,监听document 以上就是小编为大家带来的js中class的点击事件没有效果的解决方法全部内容了,希望大家多多支持~ 以上是小编为您精心准备的的内容,在的博客.问答.公众号.人物.课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索js class点击事件 javascript class.javascri

window.onbeforeunload事件里不能写ajax吧?(只有3分,谢谢)

问题描述 我想在关闭页面前ajax调用保存一些东西到数据库,但是好像onbeforeunload事件里根本不能调用ajax哟,tomcat会报IO异常:Exception filling buffer with data from underlying input stream: not an EAGAIN status, so perhaps disconnected client?,,,怎么样实现我的目的呢? 问题补充:用户使用完毕页面想收集点信息,如评价```` 解决方案 试试:使用aja