AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。
ajax()方法:通过HTTP请求加载远程数据。jQuery底层AJAX实现,简单易用的高层实现见$.get
、$.post
等。$.ajax()
返回其创建的XMLHttpRequest对象。
注:所有的选项都可以通过$.ajaxSetup()函数来全局设置。
下面看一下关于ajax的相关参数:
$.ajax({
url:"", //发送请求的地址,默认为当前页面地址
options: , //Object,ajax请求设置,可选
async:false, //Boolean,默认为true,为true时表示异步请求,false时表示同步请求。同步请求将锁住浏览器,请求完成后才可以执行其他操作
beforeSend:function(XHR){}, //function,发送请求前可以修改XMLHttpRequest对象的函数,XMLHttpRequest对象是唯一的参数。如果返回false可以取消本次ajax请求
cache:true, //dataType为script和jsonp时默认为false,设置为false将不缓存此页面
complete: function(XHR,TS){}, //请求完成后回调函数(无论请求成功与否),参数为XMLHttpRequest对象和一个描述请求类型的字符串
contentType:"", //默认:"application/x-www-form-urlencoded",发送信息到服务器时内容编码类型。默认值适合大多数情况,如果你明确的发送了一个content-type给$.ajax()那么它必定会发送给服务器(即使没有数据要发送)
context: , //设置ajax相关回调函数的上下文,即让回调函数的this指向这个对象(如果不设定该参数,那this指向调用本次ajax请求时传递的options参数)。如:制定一个DOM元素作为context参数,这样就设置了success回调函数的上下文为这个DOM元素,示例:context:document.body,
data:"", //发送到服务器的数据。将自动转换为请求字符串格式。GET请求中将附加在URL后。查看processData选项说明以禁止自动转换,必须为Key/Value格式。如果为数组,jQuery将自动为不同值对应同一个名称。
//例如:{foo:["bar1","bar2"]}转换为'&foo=bar1&foo=bar2'
dataFilter: function(){}, //给ajax返回的原始数据的进行预处理的函数,提供data和type两个参数,data是ajax返回的原始数据,type是调用jQuery.ajax是提供的dataType参数。
dataType:"", //预期服务器返回的数据类型,若不指定,jQuery会自动根据HTTP包MIME信息来只能判断,如XML MIME类型就被识别为XML。可用值:xml、html、script、json、jsonp、text
error:function(){}, //默认值:自动判断(xml或html)。请求失败时调用此函数。有三个参数:XMLHttpRequest对象、错误信息、捕获的异常对象
global: true, //是否触发全局ajax.false:不触发全局ajax事件,如ajaxStart或ajaxStop可用于控制不同的Ajax事件
ifModified:false, //仅在服务器数据改变时获取新数据。使用HTTP包Last-Modified头信息判断。
jsonp:"", //在一个jsonp请求中重写回调函数名字。用来代替在"callback=?"这种GET或POST请求中URL参数里的"callback"部分,如:{jsonp:'onJsonPLoad'}会导致将"onJsonPLoad=?"传给服务器
jsonpCallback:"", //为jsonp请求指定一个回调函数名
password:"", //用于响应HTTP访问认证请求的密码
processData:true, //默认情况下,通过data选项传递进来的数据,如果是一个对象(只要不是字符串),都会处理转化成一个查询字符串,以配合默认内容类型"application/x-www-form-urlencoded"。若要发送DOM树信息或其它不希望转换的信息,请设置为false
scriptCharset:"", //只有当请求时dataType为"jsonp"或"script",并且type是"GET"才会用于强制修改charset。通常只在本地和远程的内容编码不同时使用
success:function(){}, //请求成功后的回调函数,参数:又服务器返回,并根据dataType参数进行处理后的数据;描述状态的字符串
traditional:true, //true:用传统的方式来序列化数据
timeout:1000, //设置请求超时时间(毫秒)
type:"GET", //默认:"GET",请求方式("GET"或"POST")。PUT和DELETE仅部分浏览器支持
username:"", //用于响应HTTP访问认证请求的用户名
xhr:function(){},//需要返回一个XMLHttpRequest对象。默认在IE下是ActiveXObject,而其他情况下是XMLHttpRequest。用于重写或者提供一个增强XMLHttpRequest对象
});