原生JavaScript使用AJAX相对比较繁琐,JQuery对AJAX做了封装,使用起来更简单。
对AJAX一共封装了6个方法,分成三层。
最底层:$.ajax()
第二层:$(选择器).load()、$.get()、$.post()
第三层:$.getScript()、$.getJson()
一. load方法
.load(url, [data], [callback])
url:待装入 HTML 网页网址。
data:发送至服务器的 key/value 数据。在jQuery 1.3之后也可以接受一个字符串了。可选
callback:载入成功时回调函数。可选
注意:默认使用 GET 方式 - 传递附加参数时自动转换为 POST 方式
$("#content").load("html_data.html h1,#p", function function_name (response,status,s) {
//response - 包含来自请求的结果数据
//status - 包含请求的状态("success", "notmodified", "error", "timeout" 或 "parsererror")
//xhr - 包含 XMLHttpRequest 对象
alert("加载完毕");
console.log(response + "\n" + status + "\n" + xhr);
});
二. get()和post()方法
load一般用来读取静态html页面(动态也可以)。如果想方便传递数据到服务器,更多的使用get或post。
load方法是 jQuery 对象 的方法,而get和post方法是JQuery中的全局函数,所以可以直接使用$.get()和$.post()来调用
$.get(url, data, success(data,textStatus,xhr), dataType)
$.post(url, data, success(data, textStatus, xhr), dataType)
| 参数 | 描述 |
|---|---|
| url | 必需。规定将请求发送的哪个 URL。 |
| data | 可选。规定连同请求发送到服务器的数据。 |
| success(response,status,xhr) | 可选。规定当请求成功时运行的函数。额外的参数:response - 包含来自请求的结果数据status - 包含请求的状态xhr - 包含 XMLHttpRequest 对象 |
| dataType | 可选。规定预计的服务器响应的数据类型。默认地,jQuery 将智能判断。可能的类型:"xml""html""text""script""json""jsonp" |
三. getScript()
异步的方式加载js文件,并在加载完成后可以立即执行js文件中的代码
$.getScript("test.js", function () {
//回调函数
});
四. getJson()
与getScript方法一样,只是这个是加载的json格式的数据而已
$.getJSON("test.json", function (data) {
$("#name").html(data.name);
$("#pwd").html(data.pwd);
})
五. ajax()
该方法是JQuery底层的AJAX实现,前面的方法都是对这个方法的封装。只有一个参数(对象),所有关于请求的数据都可以封装到这个参数中
$.ajax ( [ setting ] )