jQuery 中有一套专门针对 AJAX 的封装,功能十分完善,经常使用,需要着重注意。
- $.ajax(url,{settings})或者$.ajax({settings}),通常采用最后一种,把url放到settings中,这个方法是jq中对网络请求最底层的封装,样例如下:
$.ajax({
url:'./get.php',
type:'get',
dataType:'json',
data:{id:1},
beforeSend:function(xhr){
console.log('before send')
},
success: function(data){
console.log(data)
},
error: function (err) {
console.log(err)
},
complete:function(){
console.log('request completed')
}
})
常用选项参数介绍:
url:请求地址
type:请求方法,默认为 get
dataType:服务端响应数据类型
contentType:请求体内容类型,默认 application/x-www-form-urlencoded
data:需要传递到服务端的数据(主要用于post),如果 GET 则通过 URL 传递,
如果 POST 则通过请求体传递
timeout:请求超时时间
beforeSend:请求发起之前触发
success:请求成功之后触发(响应状态码 200)
error:请求失败触发
complete:请求完成触发(不管成功与否)
复制代码
- jQuery.get(url,data,succes(response,status,xhr),dataType),使用 HTTP GET 请求从服务器加载数据
参数说明:
url:请求地址
data:请求发送到服务器的数据
success函数:可选。规定当请求成功时运行的函数。
额外的参数:
response - 包含来自请求的结果数据
status - 包含请求的状态
xhr - 包含 XMLHttpRequest 对象
dataType:可选。规定预计的服务器响应的数据类型 - jQuery.post(url,data,success(data, textStatus, jqXHR),dataType),使用 HTTP POST 请求从服务器加载数据,参数含义与get方法一致
- $.getJson( url,data,success(data, textStatus, jqXHR)),使用一个HTTP GET请求从服务器加载JSON编码的数据。
- jQuery.getScript(),使用一个HTTP GET请求从服务器加载并执行一个 JavaScript 文件。
- $(选择器).load((URL,data,callback),从服务器加载数据,并把返回的数据放入选择器中
注意:如果选择器没有匹配的元素——在这种情况下,如果document不包含id = "result" 的元素- 这个Ajax请求将不会被发送出去
Loading Page Fragments(加载页面片段)
.load() 方法, 不像 $.get()那样,允许我们使用在url中添加特定参数的特殊语法,来实现可以指定要插入哪一部分远程文档。如果url参数的字符串中包含一个或多个空格,那么第一个空格后面的内容,会被当成是jQuery的选择器,从而决定应该加载返回结果中的哪部分内容。(译者注:第一个空格后面是一个jQuery选择器,返回的内容中匹配改选择器的内容将被载人到页面中。例子:
$('#result').load('ajax/test.html #container');
//当这种方法执行, 它将检索ajax/test.html返回的页面内容,jQuery会获取ID为container元素的内容,并且插入到ID为result元素,而其他未被检索到的元素将被废弃。
复制代码