jquery第十八課,經(jīng)常聽(tīng)到人說(shuō)ajax,也經(jīng)??吹?也就是常用的注冊(cè)時(shí)用戶名判斷等,是不刷新頁(yè)面直接顯示能否注冊(cè)效果的一種技術(shù),可以用javascript實(shí)現(xiàn)ajax效果(參考ajax),不過(guò)實(shí)現(xiàn)起來(lái)比較麻煩而且容易出錯(cuò).jquery實(shí)現(xiàn)了ajax,通過(guò)jquery簡(jiǎn)單代碼實(shí)現(xiàn)了多種數(shù)據(jù)的無(wú)頁(yè)面刷新效果.簡(jiǎn)單實(shí)用.下面就對(duì)jquery實(shí)現(xiàn)ajax中的參數(shù)介紹
jquery中的ajax調(diào)用方法:jquery.ajax(options);
jquery底層ajax 實(shí)現(xiàn)。簡(jiǎn)單易用的高層實(shí)現(xiàn)見(jiàn) $.get, $.post 等。$.ajax() 返回其創(chuàng)建的 xmlhttprequest 對(duì)象.
jquery的ajax調(diào)用可以簡(jiǎn)寫(xiě)為$.ajax(options);
參數(shù)option的介紹:這里所有的參數(shù)都是可選的.
(1)async(類(lèi)型:boolean)(默認(rèn): true) 默認(rèn)設(shè)置下,所有請(qǐng)求均為異步請(qǐng)求。如果需要發(fā)送同步請(qǐng)求,請(qǐng)將此選項(xiàng)設(shè)置為 false。注意,同步請(qǐng)求將鎖住瀏覽器,用戶其它操作必須等待請(qǐng)求完成才可以執(zhí)行。
(2)beforesend(xmlhttprequest)(類(lèi)型:function)發(fā)送請(qǐng)求前可修改 xmlhttprequest 對(duì)象的函數(shù),如添加自定義 http 頭。xmlhttprequest 對(duì)象是唯一的參數(shù)。這是一個(gè) ajax 事件。如果返回false可以取消本次ajax請(qǐng)求。
(3)cache(類(lèi)型:boolean)(默認(rèn): true,datatype為script和jsonp時(shí)默認(rèn)為false) jquery 1.2 新功能,設(shè)置為 false 將不緩存此頁(yè)面。
(4)complete(xmlhttprequest,textstatus)(類(lèi)型:function)請(qǐng)求完成后回調(diào)函數(shù) (請(qǐng)求成功或失敗之后均調(diào)用)。參數(shù): xmlhttprequest 對(duì)象和一個(gè)描述成功請(qǐng)求類(lèi)型的字符串。
(5)contenttype(默認(rèn): application/x-www-form-urlencoded) 發(fā)送信息至服務(wù)器時(shí)內(nèi)容編碼類(lèi)型。默認(rèn)值適合大多數(shù)情況。如果你明確地傳遞了一個(gè)content-type給 $.ajax() 那么他必定會(huì)發(fā)送給服務(wù)器(即使沒(méi)有數(shù)據(jù)要發(fā)送)
(6)context(obj)(類(lèi)型object)這個(gè)對(duì)象用于設(shè)置ajax相關(guān)回調(diào)函數(shù)的上下文。也就是說(shuō),讓回調(diào)函數(shù)內(nèi)this指向這個(gè)對(duì)象(如果不設(shè)定這個(gè)參數(shù),那么this就指向調(diào)用本次ajax請(qǐng)求時(shí)傳遞的options參數(shù))。比如指定一個(gè)dom元素作為context參數(shù),這樣就設(shè)置了success回調(diào)函數(shù)的上下文為這個(gè)dom元素
(7)data(類(lèi)型object,string)發(fā)送到服務(wù)器的數(shù)據(jù)。將自動(dòng)轉(zhuǎn)換為請(qǐng)求字符串格式。get 請(qǐng)求中將附加在 url 后。查看 processdata 選項(xiàng)說(shuō)明以禁止此自動(dòng)轉(zhuǎn)換。必須為 key/value 格式。如果為數(shù)組,jquery 將自動(dòng)為不同值對(duì)應(yīng)同一個(gè)名稱(chēng)。如 {foo:[bar1, bar2]} 轉(zhuǎn)換為 '&foo=bar1&foo=bar2'。
(8)datafilter(類(lèi)型:function(data,type))給ajax返回的原始數(shù)據(jù)的進(jìn)行預(yù)處理的函數(shù)。提供data和type兩個(gè)參數(shù):data是ajax返回的原始數(shù)據(jù),type是調(diào)用jquery.ajax時(shí)提供的datatype參數(shù)
(9)datatype(類(lèi)型string)預(yù)期服務(wù)器返回的數(shù)據(jù)類(lèi)型。如果不指定,jquery 將自動(dòng)根據(jù) http 包 mime 信息來(lái)智能判斷,比如xml mime類(lèi)型就被識(shí)別為xml
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)求。(因?yàn)閷⑹褂胐om的script標(biāo)簽來(lái)加載)
json: 返回 json 數(shù)據(jù) 。
jsonp: jsonp 格式。使用 jsonp 形式調(diào)用函數(shù)時(shí),如 myurl?callback=? jquery 將自動(dòng)替換 ? 為正確的函數(shù)名,以執(zhí)行回調(diào)函數(shù)。
text: 返回純文本字符串
(10)error(類(lèi)型function(xmlhttprequest, textstatus, errorthrown))默認(rèn): 自動(dòng)判斷 (xml 或 html)) 請(qǐng)求失敗時(shí)調(diào)用此函數(shù)。有以下三個(gè)參數(shù):xmlhttprequest 對(duì)象、錯(cuò)誤信息、(可選)捕獲的異常對(duì)象。如果發(fā)生了錯(cuò)誤,錯(cuò)誤信息(第二個(gè)參數(shù))除了得到null之外,還可能是timeout, error, notmodified 和 parsererror
(11)global(類(lèi)型:boolean)(默認(rèn): true) 是否觸發(fā)全局 ajax 事件。設(shè)置為 false 將不會(huì)觸發(fā)全局 ajax 事件,如 ajaxstart 或 ajaxstop 可用于控制不同的 ajax 事件。
(12)ifmodified(類(lèi)型:boolean)(默認(rèn): false) 僅在服務(wù)器數(shù)據(jù)改變時(shí)獲取新數(shù)據(jù)。使用 http 包 last-modified 頭信息判斷。在jquery 1.4中,他也會(huì)檢查服務(wù)器指定的'etag'來(lái)確定數(shù)據(jù)沒(méi)有被修改過(guò)
(13)jsonp(類(lèi)型string)在一個(gè)jsonp請(qǐng)求中重寫(xiě)回調(diào)函數(shù)的名字。這個(gè)值用來(lái)替代在callback=?這種get或post請(qǐng)求中url參數(shù)里的callback部分,比如{jsonp:'onjsonpload'}會(huì)導(dǎo)致將onjsonpload=?傳給服務(wù)器
(14)jsonpcallback(類(lèi)型string)為jsonp請(qǐng)求指定一個(gè)回調(diào)函數(shù)名。這個(gè)值將用來(lái)取代jquery自動(dòng)生成的隨機(jī)函數(shù)名。這主要用來(lái)讓jquery生成度獨(dú)特的函數(shù)名,這樣管理請(qǐng)求更容易,也能方便地提供回調(diào)函數(shù)和錯(cuò)誤處理。你也可以在想讓瀏覽器緩存get請(qǐng)求的時(shí)候,指定這個(gè)回調(diào)函數(shù)名<網(wǎng)站http://www.制forasp作.cn>
(15)password(類(lèi)型strhig)用于響應(yīng)http訪問(wèn)認(rèn)證請(qǐng)求的密碼
(16)processdata(boolean)(默認(rèn): true) 默認(rèn)情況下,通過(guò)data選項(xiàng)傳遞進(jìn)來(lái)的數(shù)據(jù),如果是一個(gè)對(duì)象(技術(shù)上講只要不是字符串),都會(huì)處理轉(zhuǎn)化成一個(gè)查詢字符串,以配合默認(rèn)內(nèi)容類(lèi)型 application/x-www-form-urlencoded。如果要發(fā)送 dom 樹(shù)信息或其它不希望轉(zhuǎn)換的信息,請(qǐng)?jiān)O(shè)置為 false。
(17)scriptcharset(類(lèi)型string)只有當(dāng)請(qǐng)求時(shí)datatype為jsonp或script,并且type是get才會(huì)用于強(qiáng)制修改charset。通常只在本地和遠(yuǎn)程的內(nèi)容編碼不同時(shí)使用
(18)success(類(lèi)型function)請(qǐng)求成功后的回調(diào)函數(shù)。參數(shù):由服務(wù)器返回,并根據(jù)datatype參數(shù)進(jìn)行處理后的數(shù)據(jù);描述狀態(tài)的字符串
(19)traditional(類(lèi)型boolean)如果你想要用傳統(tǒng)的方式來(lái)序列化數(shù)據(jù),那么就設(shè)置為true。請(qǐng)參考工具分類(lèi)下面的jquery.param 方法
(20)timeout(類(lèi)型number)設(shè)置請(qǐng)求超時(shí)時(shí)間(毫秒)。此設(shè)置將覆蓋全局設(shè)置。
(21)type(類(lèi)型string)(默認(rèn): get) 請(qǐng)求方式 (post 或 get), 默認(rèn)為 get。注意:其它 http 請(qǐng)求方法,如 put 和 delete 也可以使用,但僅部分瀏覽器支持。
(22)url(類(lèi)型string)默認(rèn): 當(dāng)前頁(yè)地址) 發(fā)送請(qǐng)求的地址。
(23)username(類(lèi)型string)用于響應(yīng)http訪問(wèn)認(rèn)證請(qǐng)求的用戶名
(24)xhr(類(lèi)型funxtion)需要返回一個(gè)xmlhttprequest 對(duì)象。默認(rèn)在ie下是activexobject 而其他情況下是xmlhttprequest 。用于重寫(xiě)或者提供一個(gè)增強(qiáng)的xmlhttprequest 對(duì)象
ajax中的options設(shè)置介紹完畢