前面几节,我们介绍了很多有关Ajax的方法,如load()、.getJSON()、.get()、.post()。事实上,这几种方法从本质上来说都是使用.ajax()来实现的。换一句来说,它们都是.ajax()方法的简化版,它们能实现的功能,.ajax()都能实现,因为$.ajax()是最底层的方法。

语法:

$.ajax(options)

说明:

$.ajax()方法只有一个参数,这个参数是一个对象。该对象中包含了Ajax请求所需要的各种信息,并且以“键值对”的形式存在。

options是一个对象,这个对象内部有很多参数可以设置,所有参数都是可选的,如下表所示:

$.ajax()中的参数
参数 说明
url 被加载的页面地址
type 数据请求方式,“get"或"post”,默认为"get"
data 发送到服务器的数据,可以是字符串或对象
dataType 服务器返回数据的类型,如:text、html、script、json、xml
beforeSend 发送请求前可以修改XMLHttpRequest对象的函数
complete 请求“完成”后的回调函数
success 请求“成功”后的回调函数
error 请求“失败”后的回调函数
timeout 请求超时的时间,单位为“毫秒”
global 是否响应全局事件,默认为true(即响应)
async 是否为异步请求,默认为true(即异步)
cache 是否进行页面缓存,true表示缓存,false表示不缓存

举例:.ajax()代替.getJSON()

<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> <script src="js/jquery-1.12.4.min.js"></script> <script> $(function(){ $("#btn").click(function(){ $.ajax({ url:"info.json", type:"get", dataType:"json", success:function(data){ //定义一个变量,用于保存结果 var str = ""; $.each(data, function (index, info) { str += "姓名:" + info["name"] + "<br/>"; str += "性别:" + info["sex"] + "<br/>"; str += "年龄:" + info["age"] + "<br/>"; str += "<hr/>"; }) //插入数据 $("div").html(str); } }) }) }) </script> </head> <body> <input id="btn" type="button" value="获取数据" /> <div></div> </body> </html>

默认情况下,预览效果如下图所示。

当我们点击按钮后,此时预览效果如下图所示:

分析:

$.ajax({ url:"info.json", type:"get", dataType:"json", success:function(data){ …… } })

上面这段代码,跟下面这段代码其实是等价的:

$.getJSON("info.json", function (data) { …… })

举例:.ajax()代替.getScript()

<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> <script src="js/jquery-1.12.4.min.js"></script> <script> $(function(){ $("#btn").click(function(){ $.ajax({ url:"js/test.js", type:"get", dataType:"script" }) }) }) </script> </head> <body> <input id="btn" type="button" value="加载"/> </body> </html>

默认情况下,预览效果如下图所示。

当我们点击【加载】按钮后,可以看到控制台输出结果如下图所示。

分析:

一开始控制台是没有内容输出的,当我们点击【加载】按钮后,才会尝试加载test.js这个文件。

$.ajax({ url:"js/test.js", type:"get", dataType:"script" })

上面这段代码,跟下面这段代码其实是等价的:

$.getScript("js/test.js")