jQuery之异步Ajax请求使用
$.ajax({type:'',data:'',async:''...})
参数:
1.cache: true缓存页面 false 不缓存页面
(默认: true,dataType为script和jsonp时默认为false)
1.type: GET /POST
请求方式 ("POST" 或 "GET"), 默认为 "GET"。注意:其它 HTTP 请求方法,如 PUT 和 DELETE 也可以使用,但仅部分浏览器支持。
2.async: true/false
默认为true 异步请求
false 同步请求 注意,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。
3.data 发送到服务器的数据。将自动转换为请求字符串格式
要求为Object或String类型的参数 对象必须为key/value格式,例如{foo1:"bar1",foo2:"bar2"}转换为&foo1=bar1&foo2=bar2。
single=Single&multiple=Multiple&multiple=Multiple3&check=check2&radio=radio1
4.dataType: "JSON",
预期服务器返回的数据类型
@1. "json": 返回 JSON 数据
@2."jsonp": JSONP 格式。使用 JSONP 形式调用函数时,如 "myurl?callback=?" jQuery 将自动替换 ? 为正确的函数名,以执行回调函数。
5. jsonp
在一个jsonp请求中重写回调函数的名字。这个值用来替代在"callback=?"这种GET或POST请求中URL参数里的"callback"部分,比如{jsonp:'onJsonPLoad'}会导致将"onJsonPLoad=?"传给服务器。
6. jsonpCallback
默认为jQuery自动生成的随机函数名
为jsonp请求指定一个回调函数名。这个值将用来取代jQuery自动生成的随机函数名。这主要用来让jQuery生成独特的函数名,这样管理请求更容易,也能方便地提供回调函数和错误处理。你也可以在想让浏览器缓存GET请求的时候,指定这个回调函数名。
7.success:( data, textStatus, jqXHR)
请求成功后的回调函数。参数:由服务器返回,并根据dataType参数进行处理后的数据;描述状态的字符串。还有 jqXHR(在jQuery 1.4.x的中,XMLHttpRequest) 对象 。在jQuery 1.5, 成功设置可以接受一个函数数组。每个函数将被依次调用。
8.$("form").serialize()
序列 所有表单内容为字符串 把所有表单的值序列为以下字符串
single=Single&multiple=Multiple&multiple=Multiple3&check=check2&radio=radio1
o = $('form').serialize();
$.ajax({ type: "POST", data : param, dataType: "JSON", async: false, url: "coupon_channel.php?act=update", success: function(data) { alert(data); } });
项目开发中ajax的异常处理起来算是比较头疼的,因为是异步请求,所以即使ajax异常程序依然会继续执行,导致找ajax的异常比较麻烦。
今天处理ajax异常时搜到一篇文章,提到error可以返回ajax异常信息。
var url = untilController.do?doAdd
$.ajax({ url: url, type: "post", data: {
id:id,
name:name
}, dataType: "json", success: function(){ //callback; } error: function (XMLHttpRequest, textStatus, errorThrown) { // 状态码:400 console.log(XMLHttpRequest.status); // 状态:4 console.log(XMLHttpRequest.readyState); // 错误信息:parsererror console.log(textStatus); } });
有了error可以准确定位ajax请求哪里异常,处理异常非常方便。