query.ajax 详细说明与实例代码
返回 :xmlhttprequest
执行一个异步的http(ajax)的请求
jquery.ajax( settings )
settingsa设置的键/值对配置的ajax请求。所有选项都是可选的。可以设置一个默认为任何美元的选择。ajaxsetup()。
async
默认: true
默认情况下,所有的请求被发送异步(即这是默认设置为true)。如果你需要同步的要求,设置为false选项。跨域请求和datatype:"jsonp形式"的要求不支持同步操作。请注意,同步请求可能会暂时锁定浏览器,禁用任何行动,同时请求被激活。
beforesend(xmlhttprequest)
会前回调修改xmlhttprequest对象发送之前。使用此设置等xmlhttprequest是作为唯一的参数传递自定义标头。这是一个ajax事件。你可以在函数返回false则取消该请求
cache boolean
默认:true,为数据类型'脚本'和'jsonp形式假
如果设置为false,这将迫使您请求的页面不被浏览器缓存
complete(xmlhttprequest, textstatus)
函数的调用请求结束时(在成功和错误回调执行)。这个函数会得到两个参数:xmlhttprequest对象和一个字符串分类请求的状态("成功","notmodified","错误","超时"或"parsererror")。这是一个ajax事件。
contenttype string
default: 'application/x-www-form-urlencoded'
当发送数据到服务器,使用此内容类型。默认是"应用程序/ x - www的外形进行了urlencoded",这是对大多数病例。如果你传递一个明确的内容类型为。$.ajax() ,那么它就会永远被发送到服务器(即使没有数据发送)。数据总是被发送到服务器使用utf - 8字符集,你必须适当地解码服务器端的。
context
这个对象将在所有ajax相关的回调中。例如指定为dom元素的背景下,该会为一个像这样的要求,完成回调背景:
$.ajax({ url: "test.html", context: document.body, success: function(){
$(this).addclass("done");
}});
data
数据发送到服务器。它会转换为一个查询字符串,如果还不是一个字符串。这是附加到get的请求的url。见processdata选项,以防止这种自动处理。对象必须是键/值对。如果值是数组,jquery的序列化与传统的设置(如下所述)价值为基础同一个键多个值。
datafilter(data, type)
一个函数被用来处理数据的xmlhttprequest.this原始的回复是一个预先过滤功能,净化response.you应该返回消毒data.the函数会得到两个参数:从服务器返回的原始数据,而'数据类型'参数。
datatype string
default: intelligent guess (xml, json, script, or html)
你期待的从服务器类型。如果没有指定,jquery将智能尝试以获得结果的基础上,响应(一个xml mime类型将产生1.4的json将产生一个网页特效对象的xml,在1.4脚本,该脚本将执行,以及任何mime类型否则将返回一个字符串)。可用的类型(以及作为第一个参数传递到您的成功回调的结果):
"xml":返回一个xml文件,可以通过jquery的处理。
"html":返回html作为纯文本,包括脚本标记进行评估时,在dom中插入。
"脚本":计算的响应作为javascript语句,并返回纯文本。除非禁用选项"缓存"缓存使用。注:这将转化为远程域的请求的gets职位。
"json":将响应作为json求值,并返回一个javascript对象。在jquery 1.4的json数据是在严格地分析,任何畸形的json是拒绝,解析错误异常。 (更多有关正确的json格式信息json.org。)
"jsonp形式":在一个json块荷载作用下jsonp形式。将增加一个额外的"?回调=?"到您的网址的结尾指定回调。
"文":一个纯文本字符串。
错误(xmlhttprequest的,可选)载入功能
一个函数的调用,如果请求失败。该函数传递三个参数:xmlhttprequest对象,字符串描述了发生错误的类型和可选的异常对象,如果发生。第二个参数(除了空)可能的值是"超时","错误","notmodified"和"parsererror"。这是一个ajax事件。
globalboolean
默认:true
是否这个请求触发全局ajax事件处理程序。默认为true。设置为false,以防止被触发像ajaxstart或ajaxstop全球处理程序。这可以用来控制各种ajax事件。
ifmodifiedboolean
默认:false
允许请求是成功的只有响应自上次请求改变。这是通过检查last - modified头。默认值是false,忽略了头。在jquery 1.4这个技巧也可以检查'etag的,由服务器赶上未修改的数据指定。
jsonps教程tring
覆盖在一个jsonp回调函数的名称要求。这个值将被用来代替'回调'在'回调=?'部分在url查询字符串。所以(jsonp形式:'onjsonpload')会导致'onjsonpload =?'传递给服务器。
jsonpcallbackstring
指定一个jsonp回调函数名的要求。这个值将被用来代替jquery的自动生成的随机名称。最好是让jquery生成一个唯一的名称,因为它会让它更易于管理的要求,并提供回调和错误处理。你可能要指定回调当你想,以便更好地get请求的浏览器缓存。
passwordstring
密码将用于响应http访问认证请求。
processdataboolean
默认:true
默认情况下,数据传递给作为对象(从技术上讲,比其他任何一个字符串)数据选项将被处理和转换成一个查询字符串,以适应默认的内容类型"应用程序/ x - www的形式,进行了urlencoded" 。如果你想发送一个domdocument,或其他非处理的数据,设置为false选项。
scriptcharsetstring
只有用"jsonp形式"或"脚本"数据类型,并要求"get"的类型。强制要求被解释为某种字符集。只需要之间的远程和本地内容的字符集的差异。
成功(数据,textstatus中,xmlhttprequest)函数
一个函数的调用,如果请求成功。这个函数会得到三个参数:从服务器返回的数据,格式按照'数据类型'参数,一个字符串来描述状态;和xmlhttprequest对象(在jquery 1.4可用)。这是一个ajax事件。
timeoutnumber
设置本地的请求超时(以毫秒为单位)。这将覆盖全球逾时,如果一个人通过$设置。ajaxsetup。例如,你可以使用这个属性来提供一个单一的请求比所有你所设置时间在一秒钟内的其他要求更长的超时。见$。ajaxsetup全球超时()。
traditionalboolean
设置为true,如果你想使用的参数序列化的传统风格。
typestring
默认:'得到'
的请求的类型("post"的或"get"),默认是"get"。注:其它http请求方法,如put和delete,也可以在这里使用,但它们并不被所有的浏览器支持。
urlstring
默认:当前页
一个字符串,其中包含的url,该请求被发送。
usernamestring
一个用户名用于响应http访问认证请求。
xhrfunction
回调创建xmlhttprequest对象。到时可用的activexobject(ie)的违约,xmlhttprequest的除外。重写,以提供您的xmlhttprequest或到工厂增强自己的实现。
这项耗资。$.ajax()函数的基础所有的jquery的ajax请求发送。它往往是不必要的,直接调用这个函数,数更高级别的类似$的替代品。get()和。负荷()可供选择,更容易使用。如果不常见的选项是必需的,虽然,$。$.ajax()可以使用更灵活。
简单来说,美元的$.ajax()函数可以不带参数调用。:
$$.ajax();。注意:默认设置可以设置全局使用$ ajaxsetup()函数。。
这个例子中,不使用选项,加载当前页面的内容,但其结果没有。若要使用结果,我们可以实现的回调功能之一。
回调函数
该beforesend,错误,datafilter,成功和完成所有的选项是采取在适当的时候调用的回调函数。所有这些对于这个对象将在上下文属性对象传递至阿贾克斯在设置;。如果这是没有指定这将是一个给ajax设置本身的参考。 ajax的请求,如jsonp形式和跨域的get请求,不使用某些类型的xhr,在这些案件中的xmlhttprequest参数传递给回调将是不确定的。
beforesend称为发送请求之前,是通过xmlhttprequest对象作为一个参数。
所谓错误如果请求失败。它是通过xmlhttprequest的一个字符串表示的错误类型,如果适用的异常对象。
datafilter被称为成功。它通过返回的数据和数据类型的值,必须返回(可能改变)的数据传递成功。
如果成功,被称为请求成功。它是通过返回的数据,一个包含成功的代码和xmlhttprequest对象。
完成时调用请求完成无论是在失败或成功。它是通过xmlhttprequest对象,以及一个包含成功或错误代码。
为了让返回的html使用,我们可以实现一个成功的处理程序
$.ajax({
url: 'ajax/test.html',
success: function(data) {
$('.result').html(data);
alert('load was performed.');
}
});