jQuery系列(十四):jQuery中的ajax
1、什么是ajax
AJAX = 異步的javascript和XML(Asynchronous Javascript and XML)
簡(jiǎn)言之,在不重載整個(gè)網(wǎng)頁(yè)的情況下,AJAX通過后臺(tái)加載數(shù)據(jù),并在網(wǎng)頁(yè)上進(jìn)行顯示。
通過 jQuery AJAX 方法,您能夠使用 HTTP Get 和 HTTP Post 從遠(yuǎn)程服務(wù)器上請(qǐng)求文本、HTML、XML 或 JSON - 同時(shí)您能夠把這些外部數(shù)據(jù)直接載入網(wǎng)頁(yè)的被選元素中。
2、jQuery的load()方法
jQuery load()方法是簡(jiǎn)單但強(qiáng)大的AJAX方法。
load()方法從服務(wù)器加載數(shù)據(jù),并把返回的數(shù)據(jù)放入被選元素中。
ps:該方法使用不多,了解即可
語法:
$("selector").load(url,data,callback); // 第一種情況 $('#btn').click(function(){//只傳一個(gè)url,表示在id為#new-projects的元素里加載index.html$('#new-projects').load('./index.html'); });// 第二種情況 $('#btn').click(function(){//只傳一個(gè)url,導(dǎo)入的index.html文件含有多個(gè)傳遞參數(shù),類似于:index/html?name='張三'$('#new-projects').load('./index.html',{"name":'張三',"age":12}); });// 第三種情況 //加載文件之后,會(huì)有個(gè)回調(diào)函數(shù),表示加載成功的函數(shù) $('#new-projects').load('./index.html',{"name":'張三',"age":12},function(){ });3、jQuery的getJSON方法
jQuery的AJAX中使用getJSON()方法異步加載JSON格式數(shù)據(jù)。獲取服務(wù)器中的數(shù)據(jù),并對(duì)數(shù)據(jù)進(jìn)行解析,顯示到頁(yè)面中
語法:?
$.getJSON(url,[data],[callback])參數(shù)解釋:
url參數(shù):為請(qǐng)求加載json格式文件的服務(wù)器地址可選項(xiàng)data參數(shù):為請(qǐng)求時(shí)發(fā)送的數(shù)據(jù)
callback參數(shù):為數(shù)據(jù)請(qǐng)求成功后執(zhí)行的函數(shù) $.getJSON("./data/getJSON.json", function (data) {var str = "";//初始化保存內(nèi)容變量$.each(data, function(index,ele) {$('ul').append("<li>"+ele.name+"</li>")}); });
4、jquery中的$.get()方法
$.get() 方法通過 HTTP GET 請(qǐng)求從服務(wù)器上請(qǐng)求數(shù)據(jù)
語法:
$.get(URL,callback); url參數(shù):規(guī)定你請(qǐng)求的路徑,是必需參數(shù)callback參數(shù):為數(shù)據(jù)請(qǐng)求成功后執(zhí)行的函數(shù)
$.get('./data/getJSON.json',function(data,status){console.log(status); //success 200狀態(tài)碼 ok的意思 })
5、jQuery的post()方法
與get()方法相比,post()方法多用于以POST方式向服務(wù)器發(fā)送數(shù)據(jù),服務(wù)器接收到數(shù)據(jù)之后,進(jìn)行處理,并將處理結(jié)果返回頁(yè)面
語法:
$.post(URL,data,callback); url參數(shù):規(guī)定你請(qǐng)求的路徑,是必需參數(shù),可選的data參數(shù)是連同請(qǐng)求發(fā)送的數(shù)據(jù)可選的callback參數(shù):為數(shù)據(jù)請(qǐng)求成功后執(zhí)行的函數(shù)
$.post('/index',{name:'張三'},function(data,status){console.log(status);})
6、jQuery中的$.ajax()方法*****
query的$.ajax()方法 是做ajax技術(shù)經(jīng)常使用的一個(gè)方法。參數(shù)如下:?
(1).url:?要求為String類型的參數(shù),(默認(rèn)為當(dāng)前頁(yè)地址)發(fā)送請(qǐng)求的地址。
(2).type:?要求為String類型的參數(shù),請(qǐng)求方式(post或get)默認(rèn)為get。注意其他http請(qǐng)求方法,例如put和delete也可以使用,但僅部分瀏覽器支持。
(3).timeout: 要求為Number類型的參數(shù),設(shè)置請(qǐng)求超時(shí)時(shí)間(毫秒)。此設(shè)置將覆蓋$.ajaxSetup()方法的全局設(shè)置。
(4).async: 要求為Boolean類型的參數(shù),默認(rèn)設(shè)置為true,所有請(qǐng)求均為異步請(qǐng)求。如果需要發(fā)送同步請(qǐng)求,請(qǐng)將此選項(xiàng)設(shè)置為false。注意,同步請(qǐng)求將鎖住瀏覽器,用戶其他操作必須等待請(qǐng)求完成才可以執(zhí)行。
(5).cache: 要求為Boolean類型的參數(shù),默認(rèn)為true(當(dāng)dataType為script時(shí),默認(rèn)為false),設(shè)置為false將不會(huì)從瀏覽器緩存中加載請(qǐng)求信息。
(6).data:?要求為Object或String類型的參數(shù),發(fā)送到服務(wù)器的數(shù)據(jù)。如果已經(jīng)不是字符串,將自動(dòng)轉(zhuǎn)換為字符串格式。get請(qǐng)求中將附加在url后。防止這種自動(dòng)轉(zhuǎn)換,可以查看 processData選項(xiàng)。對(duì)象必須為key/value格式,例如{foo1:"bar1",foo2:"bar2"}轉(zhuǎn)換為&foo1=bar1&foo2=bar2。如果是數(shù)組,JQuery將自動(dòng)為不同值對(duì)應(yīng)同一個(gè)名稱。例如{foo:["bar1","bar2"]}轉(zhuǎn)換為&foo=bar1&foo=bar2。
(7).dataType: 要求為String類型的參數(shù),預(yù)期服務(wù)器返回的數(shù)據(jù)類型。如果不指定,JQuery將自動(dòng)根據(jù)http包mime信息返回responseXML或responseText,并作為回調(diào)函數(shù)參數(shù)傳遞。可用的類型如下:
xml:返回XML文檔,可用JQuery處理。
html:返回純文本HTML信息;包含的script標(biāo)簽會(huì)在插入DOM時(shí)執(zhí)行。
script:返回純文本JavaScript代碼。不會(huì)自動(dòng)緩存結(jié)果。除非設(shè)置了cache參數(shù)。注意在遠(yuǎn)程請(qǐng)求時(shí)(不在同一個(gè)域下),所有post請(qǐng)求都將轉(zhuǎn)為get請(qǐng)求。
json:返回JSON數(shù)據(jù)。
? ?jsonp:JSONP格式。使用SONP形式調(diào)用函數(shù)時(shí),例如myurl?callback=?,JQuery將自動(dòng)替換后一個(gè)“?”為正確的函數(shù)名,以執(zhí)行回調(diào)函數(shù)。
text:返回純文本字符串。
(8).beforeSend: 要求為Function類型的參數(shù),發(fā)送請(qǐng)求前可以修改XMLHttpRequest對(duì)象的函數(shù),例如添加自定義HTTP頭。在beforeSend中如果返回false可以取消本次ajax請(qǐng)求。XMLHttpRequest對(duì)象是惟一的參數(shù)。 function(XMLHttpRequest){ this; //調(diào)用本次ajax請(qǐng)求時(shí)傳遞的options參數(shù) } 9.complete:
要求為Function類型的參數(shù),請(qǐng)求完成后調(diào)用的回調(diào)函數(shù)(請(qǐng)求成功或失敗時(shí)均調(diào)用)。參數(shù):XMLHttpRequest對(duì)象和一個(gè)描述成功請(qǐng)求類型的字符串。 function(XMLHttpRequest, textStatus){ this; //調(diào)用本次ajax請(qǐng)求時(shí)傳遞的options參數(shù) }
(10).success:
要求為Function類型的參數(shù),請(qǐng)求成功后調(diào)用的回調(diào)函數(shù),有兩個(gè)參數(shù)。
(1)由服務(wù)器返回,并根據(jù)dataType參數(shù)進(jìn)行處理后的數(shù)據(jù)。
(2)描述狀態(tài)的字符串。 function(data, textStatus){ //data可能是xmlDoc、jsonObj、html、text等等?
(11).error:?要求為Function類型的參數(shù),請(qǐng)求失敗時(shí)被調(diào)用的函數(shù)。該函數(shù)有3個(gè)參數(shù),即XMLHttpRequest對(duì)象、錯(cuò)誤信息、捕獲的錯(cuò)誤對(duì)象(可選)。ajax事件函數(shù)如下: function(XMLHttpRequest, textStatus, errorThrown){ //通常情況下textStatus和errorThrown只有其中一個(gè)包含信息 this; //調(diào)用本次ajax請(qǐng)求時(shí)傳遞的options參數(shù) }
(12).contentType: 要求為String類型的參數(shù),當(dāng)發(fā)送信息至服務(wù)器時(shí),內(nèi)容編碼類型默認(rèn)為"application/x-www-form-urlencoded"。該默認(rèn)值適合大多數(shù)應(yīng)用場(chǎng)合。
(13).dataFilter: 要求為Function類型的參數(shù),給Ajax返回的原始數(shù)據(jù)進(jìn)行預(yù)處理的函數(shù)。提供data和type兩個(gè)參數(shù)。data是Ajax返回的原始數(shù)據(jù),type是調(diào)用jQuery.ajax時(shí)提供的dataType參數(shù)。函數(shù)返回的值將由jQuery進(jìn)一步處理。 function(data, type){ //返回處理后的數(shù)據(jù) return data; }
(14).dataFilter: 要求為Function類型的參數(shù),給Ajax返回的原始數(shù)據(jù)進(jìn)行預(yù)處理的函數(shù)。提供data和type兩個(gè)參數(shù)。data是Ajax返回的原始數(shù)據(jù),type是調(diào)用jQuery.ajax時(shí)提供的dataType參數(shù)。函數(shù)返回的值將由jQuery進(jìn)一步處理。 function(data, type){ //返回處理后的數(shù)據(jù) return data; }
(15).global: 要求為Boolean類型的參數(shù),默認(rèn)為true。表示是否觸發(fā)全局ajax事件。設(shè)置為false將不會(huì)觸發(fā)全局ajax事件,ajaxStart或ajaxStop可用于控制各種ajax事件。
(16).ifModified: 要求為Boolean類型的參數(shù),默認(rèn)為false。僅在服務(wù)器數(shù)據(jù)改變時(shí)獲取新數(shù)據(jù)。服務(wù)器數(shù)據(jù)改變判斷的依據(jù)是Last-Modified頭信息。默認(rèn)值是false,即忽略頭信息。
(17).jsonp: 要求為String類型的參數(shù),在一個(gè)jsonp請(qǐng)求中重寫回調(diào)函數(shù)的名字。該值用來替代在"callback=?"這種GET或POST請(qǐng)求中URL參數(shù)里的"callback"部分,例如{jsonp:'onJsonPLoad'}會(huì)導(dǎo)致將"onJsonPLoad=?"傳給服務(wù)器。
(18).username: 要求為String類型的參數(shù),用于響應(yīng)HTTP訪問認(rèn)證請(qǐng)求的用戶名。
(19).password: 要求為String類型的參數(shù),用于響應(yīng)HTTP訪問認(rèn)證請(qǐng)求的密碼。
(20).processData: 要求為Boolean類型的參數(shù),默認(rèn)為true。默認(rèn)情況下,發(fā)送的數(shù)據(jù)將被轉(zhuǎn)換為對(duì)象(從技術(shù)角度來講并非字符串)以配合默認(rèn)內(nèi)容類型"application/x-www-form-urlencoded"。如果要發(fā)送DOM樹信息或者其他不希望轉(zhuǎn)換的信息,請(qǐng)?jiān)O(shè)置為false。
(21).scriptCharset: 要求為String類型的參數(shù),只有當(dāng)請(qǐng)求時(shí)dataType為"jsonp"或者"script",并且type是GET時(shí)才會(huì)用于強(qiáng)制修改字符集(charset)。通常在本地和遠(yuǎn)程的內(nèi)容編碼不同時(shí)使用
6-1:get方式
//get()方式 $.ajax({url:'./data/index.txt',type:'get',dataType:'text',success:function(data){$('p').html(data);},error:function(error){console.log(error)}6-2:post方式
//post()方式 $.ajax({url:'/index',type:'post',data:{name:'張三',age:12},success:function(data){$('p').html(data);},error:function(error){console.log(error) }?
轉(zhuǎn)載于:https://www.cnblogs.com/felixwang2/p/9878940.html
總結(jié)
以上是生活随笔為你收集整理的jQuery系列(十四):jQuery中的ajax的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: win10桌面简洁化(自定义鼠标右键菜单
- 下一篇: 用ajax(vb.net) 实现drop