简单示例
$.ajax({
url: '',
type: 'POST',
dataType: 'json',
data: data
});
url:
一个用来包含发送请求的URL字符串。
async:
默认设置下,所有请求均为异步请求(也就是说这是默认设置为 true )。如果需要发送同步请求,请将此选项设置为 false 。跨域请求和 dataType: "jsonp" 请求不支持同步操作。注意,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。
beforeSend:
在beforeSend函数中返回false将取消这个请求,beforeSend选项将被访问,不管请求的类型。(一般用来实现ajax请求时的loading图)
cache:
默认: true, dataType为"script"和"jsonp"时默认为false,如果设置为 false ,浏览器将不缓存此页面(如果要用递归调取ajax,请设置为false,因为IE7,8中将会不断从缓存中取得数据,会造成浏览器假死)
complete:
请求完成后回调函数 (请求success 和 error之后均调用)
context:
这个对象用于设置Ajax相关回调函数的上下文。 默认情况下,这个上下文是一个ajax请求使用的参数设置对象,比如指定一个DOM元素作为context参数,这样就设置了complete回调函数的上下文为这个DOM元素。就像这样:
$.ajax({
url: "test.html",
context: document.body
}).done(function() {
$(this).addClass("done");
});
crossDomain:
如果你想在同一域中强制跨域请求(如JSONP形式),例如,想服务器端重定向到另一个域,那么需要将crossDomain设置为 true
data:
发送到服务器的数据。它被转换成一个查询字符串,如果已经是一个字符串的话就不会转换,查询字符串将被追加到GET请求的URL后,对象必须为"{键:值}"格式。如果这个参数是一个数组,jQuery会按照traditional 参数的值, 将自动转化为一个同名的多值查询字符串(查看下面的说明)
dataType:
从服务器返回你期望的数据类型。如果没有指定,jQuery将尝试通过MIME类型的响应信息来智能判断(一个XML MIME类型就被识别为XML,在1.4中 JSON将生成一个JavaScript对象,在1.4中 script 将执行该脚本,其他任何类型会返回一个字符串)
error:
请求失败时调用此函数。
global:
是否触发全局 AJAX 事件。默认值: true。设置为 false 将不会触发全局 AJAX 事件,如 ajaxStart 或 ajaxStop 可用于控制不同的 Ajax 事件
method:
HTTP 请求方法 (比如:"POST", "GET ", "PUT")(默认:'GET'),如果你使用jQuery 1.9.0 之前的版本,你需要使用type选项
statusCode:
一个 HTTP响应状态码 和 当请求响应相应的状态码时执行的函数 组成的对象
$.ajax({
statusCode: {
404: function(data) {
alert("page not found");
}
}
});
如果请求成功,响应状态代码对应的函数会带着success回调函数相同的参数;如果请求结果是错误的(包含3xx之类的重定向),他们会采用error回调函数相同的参数。
success:
请求成功后的回调函数。
timeout:
设置请求超时时间(毫秒)。值为0表示没有超时。
type:
method选项的别名。如果你使用jQuery 1.9.0 之前的版本,你需要使用type选项
其实,自从jquery封装了promise后,ajax请求变的更加方便和秩序性,
var ajaxUrlConfig = {
esingContract: 'xxxxxx'
}
return $.ajax({
url: ajaxUrlConfig.esingContract,
data: params,
type: 'POST',
dataType: 'json',
timeout: 300000
});
我们可以通过上面代码封装一个promise式的ajax请求,然后通过.then(),.done()等来调用。
具体的,我会在接下来详细讲解promise。