【jQuery】$.ajax() 常用参数理解
参考:http://hemin.cn/jq/jQuery.ajax.html
注意,所有的选项都可以通过$.ajaxSetup()函数来全局设置。
个人理解全局设置,在每次调用$.ajax()时都会执行 $.ajaxSetup()函数的内容;
1、回调函数:
- beforeSend, 在发送请求之前调用。
- error, 请求出错时调用。
- dataFilter, 请求成功之后调用。
- success, 请求之后调用。
- complete 请求完成后调用,无论成功与否。
关于dataFilter要理解的:
当用户的session失效时可使用ajax请求时,可以使用这个函数进行判断是否要重新跳转到登录界面
(系统的过滤器发现用户ajax的请求,但用户没有登录或session失效时返回字符串”timeOut"):
$.ajaxSetup({ dataFilter : function(data, type){ console.log("data:"+data); if(data == "timeOut" || data == "[object XMLDocument]"){ //ajax请求,发现session过期,重新刷新页面,跳转到登录页面 window.location.reload(); }else{ return data; } } })
参考:http://txjdsk.iteye.com/blog/1861210
2、设置参数:
- url, 发送请求地址;
- cache, 默认缓存页面,[dataType为script和jsonp时默认不缓存]
- async, 默认true异步请求;
- contentType, 发送至服务器时内容编码类型;默认: "application/x-www-form-urlencoded"
- data, 发送到服务器数据,key/value格式,可以是字符串也可以是映射。
- dataType, 数据返回格式;默认字符串:xml,html,script,json,jsonp,text
- global, 是否触发全局AJAX事件,默认true
- type, 请求方式(POST或GET);默认GET
- statusCode, 根据相应状态码,回调函数。
dataType和contentType是一组的;如图
关于statusCode例子:
$.ajax({ statusCode: {404: function() { alert('page not found'); } });