刚入职不久,今天用jquery的ajax写了一段代码
$(window).unload( function () {
var tempPath = $("#tempPath").val();
var userCode = document.getElementById("chatMain_userCode").value;
$.ajax({
type: "post",
url: tempPath+"/ChatOnlineController?action=changeStatusOff&userCode="+userCode+"&id="+Math.random(),
});
} );
想在用户刷新或关闭浏览器的时候能够去访问服务器,但是无论如何,后台也接收不到数据,但是如果在这段代码后加上一个alert提示的话,后台的服务器是能够接收到数据的,这个问题非常费解。
后来经过查资料才发现是ajax的同步异步的问题,在原来的代码里加上async:false 就行了,也就是说让它变成同步的。通过网上查阅的资料得知:
因为调用异步的ajax请求在一些浏览器下无法真正使server得到通知,实际上根本无法保障!在发出了这个异步请求之后,浏览器就要关闭窗口并清理所 有相关资源,因为这是异步请求,所以浏览器有理由认为无需等待该请求完成即可开始关闭窗口,这样该请求就可能失败(IE上就是这样,用异步请求无法通知到 server)。这也解释了为什么异步callServer()调用后面再加个alert语句就没问题了,因为alert语句在后面挡着,需要人来点确 认,所以可以完成对server的请求。而用同步的ajax请求则浏览器会等待该请求完成后才关闭窗口清理资源,因而就不会有这个问题。
新手,多多关照
分享到:
相关推荐
使用Jquery实现可编辑的表格 并使用AJAX提交到服务器修改数据的实现代码。
jQuery ajax中数据以键值对(Key/Value)的形式发送到服务器,使用ajax提交表单数据时可以使用jQuery ajax的serialize() 方法表单序列化为键值对(key1=value1&key2=value2…)后提交。serialize() 方法使用标准的 ...
如何能达到灵活的程度呢,能像普通的AJAX提交表单数据那样将文件看成是普通表单参数来对待就好了。 灵光一闪,利用javascript的FileReader对象将文件编码成base64再传服务器不就行了么~ 开始动手,丰衣足食。 前端对...
基于 MVC 结构的 J2EE 应用服务器框架 —— apache ...客户端 jQuery ajax 提交表单至 struts2 的 action,action 调用 model,model 生成json返回至 action,再由 action 返回 json 至客户端,并由 jQuery 解析。
可以通过ajax来提交表单,而不会刷新页面。主要使用的方法是 $(“#formID”).ajaxSubmit()方法。 1、要引入js插件 需要下载的附件:jquery.form.js 2、页面代码: [removed][removed] [removed][removed] <...
使用juery提交表单,实现ajax跨域请求
期望的功能和效果很简单:点击页面中的上传文件表单控件,选择文件后点击“ajax提交”,将文件上传至服务器,上传成功后,页面给出一个简单的提示。 2,前端的代码 看下html代码: <d
* 同步:提交请求->等待服务器处理->处理完毕返回 这个期间客户端浏览器不能干任何事 * 异步: 请求通过事件触发->服务器处理(这时浏览器仍然可以作其他事情)->处理完毕 同步是指:发送方发出数据后,等接收方发回...
做AJAX应用,jquery提供的$.get()、$.post()函数都可以用于提交数据,但建议使用$.ajax()来提交,那两个函数都不 提供错误返回信息,不利全面掌控。 提交数据是action代表要执行的操作,id传递文章id,page是请求的...
提交表单一般通过同步的方式提交,提交后页面刷新或跳转到新页面来显示服务器端返回的处理结果。如果表单提交后有另外的操作或业务需求需要还在这个页面上显示或处理,那么页面不能整体刷新,这时第一想到的就是采用...
今天刚好看到Jquery的ajax提交数据到服务器的方法,原文是: 保存数据到服务器,成功时显示信息。 jQuery 代码: 代码如下: $.ajax({ type: “POST”, url: “some.php”, data: “name=John&location=Boston”, ...
看一个用jQuery提交表单ajax查询的例子。 基本功能:用户输入一个表单,输入准考证和验证码,验证用户是否输入表单,点击查询提交,然后从服务器得到返回的数据并显示出来。 代码如下: jQuery部分: 代码如下: ...
data:’data=’dsa’,//传给PHP的数据,多个参数用&连接 dataType:’text’,//服务器返回的数据类型 可选XML ,Json jsonp script html text等 success:function(msg){ //这里是ajax提交成功后,PHP程序返回的数
AJAX 是与服务器交换数据并更新部分网页的艺术,在不重新加载整个页面的情况下。 需要引入 : jquery-form.js 使用说明: Java代码 $(document).ready(function() { var options = { target: '#mydiv', // 需要...
看一个用jQuery提交表单ajax查询的例子。 基本功能:用户输入一个表单,输入准考证和验证码,验证用户是否输入表单,点击查询提交,然后从服务器得到返回的数据并显示出来。 代码如下: jQuery部分: 代码如下: ...
POST则 认为是一个 变动性 访问 (浏览器 认为 POST的提交 必定是 有改变的) 防止 GET 的 等幂 访问 就在URL后面加上 ?+new Date();,[总之就是使每次访问的URL字符串不一样的] 设计WEB页面的时候 也应该遵守这个...
ajaxForm()和ajaxSubmit()方法可以接受0个或1个参数,当为单个参数时,该参数可以是一个回调函数,也可以是一个options对象。以下是一个options对象. var options={ target:'#output1', //把服务器返回内容放入id为...
那是因为response原因,一般请求浏览器是会处理服务器输出的response,例如生成png、文件下载等,然而ajax请求只是个“字符型”的请求,即请求的内容是以文本类型存放的。文件的下载是以二进制形式进行的,虽然可以...