2 回答

TA貢獻(xiàn)1801條經(jīng)驗(yàn) 獲得超16個(gè)贊
是text文本數(shù)據(jù)。
$.ajax()函數(shù)依賴服務(wù)器提供的信息來(lái)處理返回的數(shù)據(jù)。如果服務(wù)器報(bào)告說(shuō)返回的數(shù)據(jù)是XML,那么返回的結(jié)果就可以用普通的XML方法或者jQuery的選擇器來(lái)遍歷。如果見得到其他類型,比如HTML,則數(shù)據(jù)就以文本形式來(lái)對(duì)待。
通過(guò)dataType選項(xiàng)還可以指定其他不同數(shù)據(jù)處理方式。除了單純的XML,還可以指定 html、json、jsonp、script或者text。
其中,text和xml類型返回的數(shù)據(jù)不會(huì)經(jīng)過(guò)處理。數(shù)據(jù)僅僅簡(jiǎn)單的將XMLHttpRequest的responseText或responseHTML屬性傳遞給success回調(diào)函數(shù)。
注意,我們必須確保網(wǎng)頁(yè)服務(wù)器報(bào)告的MIME類型與我們選擇的dataType所匹配。比如說(shuō),XML的話,服務(wù)器端就必須聲明text/xml 或者 application/xml 來(lái)獲得一致的結(jié)果。
如果指定為html類型,任何內(nèi)嵌的JavaScript都會(huì)在HTML作為一個(gè)字符串返回之前執(zhí)行。類似的,指定script類型的話,也會(huì)先執(zhí)行服務(wù)器端生成JavaScript,然后再把腳本作為一個(gè)文本數(shù)據(jù)返回。
如果指定為json類型,則會(huì)把獲取到的數(shù)據(jù)作為一個(gè)JavaScript對(duì)象來(lái)解析,并且把構(gòu)建好的對(duì)象作為結(jié)果返回。為了實(shí)現(xiàn)這個(gè)目的,他首先嘗試使用JSON.parse()。
如果瀏覽器不支持,則使用一個(gè)函數(shù)來(lái)構(gòu)建。JSON數(shù)據(jù)是一種能很方便通過(guò)JavaScript解析的結(jié)構(gòu)化數(shù)據(jù)。如果獲取的數(shù)據(jù)文件存放在遠(yuǎn)程服務(wù)器上(域名不同,也就是跨域獲取數(shù)據(jù)),則需要使用jsonp類型。

TA貢獻(xiàn)1799條經(jīng)驗(yàn) 獲得超8個(gè)贊
$.ajax()函數(shù)依賴服務(wù)器提供的信息來(lái)處理返回的數(shù)據(jù)。如果服務(wù)器報(bào)告說(shuō)返回的數(shù)據(jù)是XML,那么返回的結(jié)果就可以用普通的XML方法或者jQuery的選擇器來(lái)遍歷。如果見得到其他類型,比如HTML,則數(shù)據(jù)就以文本形式來(lái)對(duì)待。
通過(guò)dataType選項(xiàng)還可以指定其他不同數(shù)據(jù)處理方式。除了單純的XML,還可以指定 html、json、jsonp、script或者text。
其中,text和xml類型返回的數(shù)據(jù)不會(huì)經(jīng)過(guò)處理。數(shù)據(jù)僅僅簡(jiǎn)單的將XMLHttpRequest的responseText或responseHTML屬性傳遞給success回調(diào)函數(shù),
注意,我們必須確保網(wǎng)頁(yè)服務(wù)器報(bào)告的MIME類型與我們選擇的dataType所匹配。比如說(shuō),XML的話,服務(wù)器端就必須聲明
text/xml 或者 application/xml 來(lái)獲得一致的結(jié)果。
如果指定為html類型,任何內(nèi)嵌的JavaScript都會(huì)在HTML作為一個(gè)字符串返回之前執(zhí)行。類似的,指定script類型的話,也會(huì)先執(zhí)行服務(wù)器端生成JavaScript,然后再把腳本作為一個(gè)文本數(shù)據(jù)返回。
如果指定為json類型,則會(huì)把獲取到的數(shù)據(jù)作為一個(gè)JavaScript對(duì)象來(lái)解析,并且把構(gòu)建好的對(duì)象作為結(jié)果返回。為了實(shí)現(xiàn)這個(gè)目的,他首先嘗試使用JSON.parse()。如果瀏覽器不支持,則使用一個(gè)函數(shù)來(lái)構(gòu)建。JSON數(shù)據(jù)是一種能很方便通過(guò)JavaScript解析的結(jié)構(gòu)化數(shù)據(jù)。如果獲取的數(shù)據(jù)文件存放在遠(yuǎn)程服務(wù)器上(域名不同,也就是跨域獲取數(shù)據(jù)),則需要使用jsonp類型。使用這種類型的話,會(huì)創(chuàng)建一個(gè)查詢字符串參數(shù)
callback=?
,這個(gè)參數(shù)會(huì)加在請(qǐng)求的URL后面。服務(wù)器端應(yīng)當(dāng)在JSON數(shù)據(jù)前加上回調(diào)函數(shù)名,以便完成一個(gè)有效的JSONP請(qǐng)求。如果要指定回調(diào)函數(shù)的參數(shù)名來(lái)取代默認(rèn)的callback,可以通過(guò)設(shè)置$.ajax()的jsonp參數(shù)。
注意,JSONP是JSON格式的擴(kuò)展。他要求一些服務(wù)器端的代碼來(lái)檢測(cè)并處理查詢字符串參數(shù)。更多信息可以參閱 最初的文章。
如果指定了script或者jsonp類型,那么當(dāng)從服務(wù)器接收到數(shù)據(jù)時(shí),實(shí)際上是用了<script>標(biāo)簽而不是XMLHttpRequest對(duì)象。這種情況下,$.ajax()不再返回一個(gè)XMLHttpRequest對(duì)象,并且也不會(huì)傳遞事件處理函數(shù),比如beforeSend。
上面是官方的解說(shuō),但是在實(shí)際應(yīng)用中,用得最多的就是html和json,如果是html,那么返回的數(shù)據(jù)直接插入或打印在某個(gè)地方就可以了,瀏覽器會(huì)照樣解析;
如果是json,會(huì)復(fù)雜點(diǎn),首先要先對(duì)json數(shù)據(jù)進(jìn)行處理一遍,我的理解的話,json跟數(shù)組很像,所以傳回來(lái)的數(shù)據(jù)要先處理一遍才能用,建議找一些jquery的get和post的教程來(lái)看看。
添加回答
舉報(bào)