デフォルト: 現在のロケーション プロトコルによって異なります。 允许将当前环境视作"本地",(例如文件系统),即使默认情况下jQuery不会如此识别它。目前,以下协议将被视作本地:file
、*-extension
和widget
。
jsonp---String类型
重写JSONP请求的回调函数名称。该值用于替代"url?callback=?"中的"callback"部分。
jsonpCallback---String/Function类型
为JSONP请求指定一个回调函数名。这个值将用来取代jQuery自动生成的随机函数名。
从jQuery 1.5开始,你也可以指定一个函数来返回所需的函数名称。
mimeType---String类型1.5.1 新增
一个mime类型用来覆盖XHR的mime类型。
password---String类型
用于响应HTTP访问认证请求的密码。
processData---Boolean类型
默认值:true
。
默认情况下,通过<span id="4_nwp">data</span>
属性传递进来的数据,如果是一个对象(技术上讲,只要不是字符串),都会处理转化成一个查询字符串,以配合默认内容类型 "application/x-www-form-urlencoded"。如果要发送 DOM树信息或其它不希望转换的信息,请设置为false
。
scriptCharset---String类型
设置该请求加载的脚本文件的字符集。只有当请求时dataType为"jsonp"或"script",并且type是"GET"才会用于强制修改charset。这相当于设置3f1c4e4b6b16bbbd69b2ee476dc4f83a标签的charset属性。通常只在当前页面和远程数据的内容编码不同时使用。
statusCode---Object类型1.5 新增
默认值: {}
。
一组数值的HTTP代码和函数构成的对象,当响应时调用了相应的代码。例如:
$.ajax({
url: a_not_found_url ,
// 当响应对应的状态码时,执行对应的回调函数
statusCode: { 404: function() {
alert( "找不到页面" );
}, 200: function(){
alert("请求成功");
}
}
});
success---Function/Array类型
指定请求成功后执行的回调函数。该函数有3个参数:请求返回的数据、响应状态字符串、jqXHR
对象。
从jQuery 1.5开始,该属性值可以是数组形式的多个函数,每个函数都将被回调执行。
timeout---Number类型
设置请求超时的毫秒值。
traditional---Boolean类型
如果你希望使用传统方式来序列化参数,将该属性设为true
。
type---String类型
默认值:"GET"。
请求类型,可以为'POST'或'GET'。注意:你也可以在此处使用诸如'PUT'、'DELETE'等其他请求类型,但它们不被所有浏览器支持。
url --- String类型
默认值:当前页面URL。
请求的目标URL。
username --- String类型
用于响应HTTP访问认证请求的用户名。
xhr --- Function类型
默认值:在IE下是ActiveXObject
(如果可用),在其他浏览器中是XMLHttpRequest
。
一个用于创建并返回XMLHttpRequest对象的回调函数。你可以重写该属性以提供自己的XHR实现,或增强其功能。
xhrFieldsObject类型1.5.1 新增
一个具有多个"字段名称-字段值"对的对象,用于对本地XHR对象进行设置。一对「文件名-文件值」在本机设置XHR对象。例如,如果需要,你可以用它来为跨域请求设置XHR对象的withCredentials
属性为true
。
$.ajax({
url: a_cross_domain_url, // 将XHR对象的withCredentials设为true xhrFields: {
withCredentials: true
}
});
注意:
1、如果你的所有AJAX请求都需要设置settings
中某些参数,你可以使用jQuery.ajaxSetup()函数进行全局设置,而无需在每次执行jQuery.ajax()
时分别设置。
2、在jQuery 1.4(含)之前,选项参数complete
、succes
、error
等Ajax事件的回调函数的第3个参数不是经过jQuery封装的jqXHR对象,而是原生的XMLHttpRequest对象。
返回值
jQuery.<span id="19_nwp">ajax()</span>
函数的返回值为jqXHR类型,返回当前该请求的jqHXR对象(jQuery 1.4及以前版本返回的是原生的XMLHttpRequest对象)。
示例&说明
如果没有给jQuery.ajax()
指定任何参数,则默认请求当前页面,并且不对返回数据进行处理。
jQuery.ajax()
函数的settings
对象中,常用的属性有:url、type、async、data、dataType、success、error、complete、beforeSend、timeout等。
请参考下面这段初始HTML代码:
<div id="content"></div>
以下是与jQuery.ajax()
函数相关的jQuery示例代码,以演示jQuery.ajax()
函数的具体用法:
(演示页面只有第一个ajax()函数,其他代码请自行复制到演示页面分别执行)
$.ajax({
url: "jquery_ajax.php"
, type: "POST"
, data: "name=codeplayer&age=18"
, success: function( data, textStatus, jqXHR ){
// data 是返回的数据
// textStatus 可能为"success"、"notmodified"等
// jqXHR 是经过jQuery封装的XMLHttpRequest对象
alert("返回的数据" + data);
}
});
$.ajax({
url: "jquery_ajax.php?page=1&id=3"
, type: "POST"
// jQuery会自动将对象数据转换为 "name=codeplayer&age=18&uid=1&uid=2&uid=3"
, data: { name:"codeplayer", age:18, uid: [1, 2, 3] }
// 请求成功时执行
, success: function( data, textStatus, jqXHR ){
alert("返回的数据" + data);
}
// 请求失败时执行
, error: function(jqXHR, textStatus, errorMsg){
// jqXHR 是经过jQuery封装的XMLHttpRequest对象
// textStatus 可能为: null、"timeout"、"error"、"abort"或"parsererror"
// errorMsg 可能为: "Not Found"、"Internal Server Error"等
alert("请求失败:" + errorMsg);
}
});
// 将url单独提取出来作为第一个参数(jQuery 1.5+才支持)
$.ajax("jquery_ajax.php?action=type&id=3", {
dataType: "json" // 返回JSON格式的数据
, success: function( data, textStatus, jqXHR ){
// 假设返回的字符串数据为{ "name": "CodePlayer", age: 20 }
// jQuery已帮我们将该JSON字符串转换为对应的JS对象,可以直接使用
alert( data.name ); // CodePlayer
}
});
$.ajax( {
// 注意这里有个参数callback=?
url: "http://cross-domain/jquery_ajax.php?name=Jim&callback=?&age=21"
, async: false // 同步请求,发送请求后浏览器将被锁定,只有等到该请求完成(无论成功或失败)后,用户才能操作,js代码才会继续执行
, dataType: "jsonp" // 返回JSON格式的数据
, success: function( data, textStatus, jqXHR ){
// 假设返回的字符串数据为{ "site_name": "CodePlayer", "site_desc": "专注于编程开发技术分享" }
// jQuery已帮我们将该JSON字符串转换为对应的JS对象,可以直接使用
alert( data.site_desc ); // 专注于编程开发技术分享
}
});
$.ajax( {
// 加载指定的js文件到当前文档中
url: "http://code.jquery.com/jquery-1.8.3.min.js"
, dataType: "script"
});
推荐学习:《ajax视频教程》