jQuery.ajax()函数是jQuery封装的AJAX技术实现,通过该函数,我们无需刷新当前页面即可获取远程服务器上的数据。用于通过后台HTTP请求加载远程数据。
jQuery.ajax()函数是jQuery的底层AJAX实现。jQuery.get()、 jQuery.post()、load()、 jQuery.getJSON()、 jQuery.getScript()等函数都是该函数的简化形式(都调用该函数,只是参数设置有所不同或有所省略)。
该函数属于全局jQuery对象(也可理解为静态函数)。
语法
jQuery 1.0 新增该静态函数。jQuery.ajax()函数有以下两种用法:
用法一:
jQuery.ajax( [ settings ] ] )
用法二:jQuery 1.5 新增支持该用法。
jQuery.ajax( url [, settings ] ] )
用法二是用法一的变体,它只是将参数对象settings中的可选属性url单独提取出来作为一个独立的参数。
参数
请根据前面语法部分所定义的参数名称查找对应的参数。
url String类型URL请求字符串。
settings 可选/Object类型一个Object对象,其中的每个属性用来指定发送请求所需的额外参数设置。 参数settings是一个对象。
返回值
jQuery.ajax()函数的返回值为jqXHR类型,返回当前该请求的jqXHR对象(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({ 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" });
Atas ialah kandungan terperinci jquery中的jQuery.ajax()函数用法实例详解. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!