一,介绍
1.$.ajax()
是jquery
封装后的ajax
请求。
2.类似的还有更高层次的封装$.get()
,$.post()
和$.getJSON()
二,$.ajax()
的使用
1.$.ajax()
接受一个配置对象来描述请求
$.ajax({
url:"xxxx",
method: "get"||"post",
async:true||false,
timeOut:1000,
data:data,
dataType:'json',
headers:{}
success:function(data){
},
error:function(data){
},
beforeSend:function(xhr,r){
xhr.setRequestHeader({}) //自定义头部信息
},
complete:function(){}
})
三,各配置项解释
1.url
: 请求的url
地址,默认是当前页面的地址,支持绝对路径和相对路径。相对路径又可分为两种
(1) /request/ajaxtest
,如果请求路径以根路径/
开头,该请求都是相对于服务器的根路径
(2)request/ajaxtest
,如果请求不以根路径开头,则该请求路径是相对于当前html
所在的路径的
2.method
: 请求方法,支持get
post
put
3.async
: 是否是异步的,默认为true
4.timeout
: 请求超时时间
5.data
: 请求传递的参数,支持三种格式:对象,json
格式字符串,和标准模式参数
(1)对象: {a:1,b:"json"}
(2)json
格式字符串: "{“a”:1,"b":"json"}"
必需在headers
设置contentType:"application/json"
(3)标准模式参数:"a=1&b=hello"
注意get
只支持1,3
两种,post
支持1,2,3
6.dataType
: 希望返回的数据类型:json | xml | html | ...
,$.ajax()
会根据这个自动转化收到的数据
7.cache
: 是否开启缓存,当cache
为false
时会自动的给get
请求最后加个t=时间戳
,保证请求不一样,不会被缓存。
8.beforeSend
:发送请求前,若return false
,将不会发送请求。
9.success
: 请求成功的回调函数:返回两个参数,第一个是从服务端返回的数据,第二个是状态的中文描述。
10.error
: 请求失败的回调函数
11.complete
: 请求完成时的回调函数:返回两个参数,和success
不同,第一个是 XMLHttpRequest
对象,第二个是状态的中文描述。
12.headers
: 自定义请求头部信息
13.content-type
: 请求参数的编码方式,默认为application/x-www-form-urlencoded
四,高层次封装介绍
1.$.get( url [, data ] [, success ] [, dataType ] )
2.$.post( url [, data ] [, success ] [, dataType ] )
3.$.getJSON( url [, data ] [, success(data, textStatus, jqXHR) ] )
4.以上都可以使用$.ajax()
完成