jQuery怎么使用ajax

小編給大家分享一下jQuery怎么使用ajax,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

成都創(chuàng)新互聯(lián)公司于2013年成立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目網(wǎng)站設(shè)計(jì)、成都網(wǎng)站設(shè)計(jì)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元麻城做網(wǎng)站,已為上家服務(wù),為麻城各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:028-86922220

用JavaScript寫AJAX前面已經(jīng)介紹過了,主要問題就是不同瀏覽器需要寫不同代碼,并且狀態(tài)和錯(cuò)誤處理寫起來(lái)很麻煩。

用jQuery的相關(guān)對(duì)象來(lái)處理AJAX,不但不需要考慮瀏覽器問題,代碼也能大大簡(jiǎn)化。

ajax

jQuery在全局對(duì)象jQuery(也就是$)綁定了ajax()函數(shù),可以處理AJAX請(qǐng)求。ajax(url, settings)函數(shù)需要接收一個(gè)URL和一個(gè)可選的settings對(duì)象,常用的選項(xiàng)如下:

?async:是否異步執(zhí)行AJAX請(qǐng)求,默認(rèn)為true,千萬(wàn)不要指定為false;
?method:發(fā)送的Method,缺省為'GET',可指定為'POST'、'PUT'等;
?contentType:發(fā)送POST請(qǐng)求的格式,默認(rèn)值為'application/x-www-form-urlencoded; charset=UTF-8',也可以指定為text/plain、application/json;
?data:發(fā)送的數(shù)據(jù),可以是字符串、數(shù)組或object。如果是GET請(qǐng)求,data將被轉(zhuǎn)換成query附加到URL上,如果是POST請(qǐng)求,根據(jù)contentType把data序列化成合適的格式;
?headers:發(fā)送的額外的HTTP頭,必須是一個(gè)object;
?dataType:接收的數(shù)據(jù)格式,可以指定為'html'、'xml'、'json'、'text'等,缺省情況下根據(jù)響應(yīng)的Content-Type猜測(cè)。

下面的例子發(fā)送一個(gè)GET請(qǐng)求,并返回一個(gè)JSON格式的數(shù)據(jù):

var jqxhr = $.ajax('/api/categories', {
  dataType: 'json'
});
// 請(qǐng)求已經(jīng)發(fā)送了

不過,如何用回調(diào)函數(shù)處理返回的數(shù)據(jù)和出錯(cuò)時(shí)的響應(yīng)呢?

還記得Promise對(duì)象嗎?jQuery的jqXHR對(duì)象類似一個(gè)Promise對(duì)象,我們可以用鏈?zhǔn)綄懛▉?lái)處理各種回調(diào):

'use strict';

function ajaxLog(s) {
  var txt = $('#test-response-text');
  txt.val(txt.val() + '\n' + s);
}

$('#test-response-text').val('');
var jqxhr = $.ajax('/api/categories', {
  dataType: 'json'
}).done(function (data) {
  ajaxLog('成功, 收到的數(shù)據(jù): ' + JSON.stringify(data));
}).fail(function (xhr, status) {
  ajaxLog('失敗: ' + xhr.status + ', 原因: ' + status);
}).always(function () {
  ajaxLog('請(qǐng)求完成: 無(wú)論成功或失敗都會(huì)調(diào)用');
});

get

對(duì)常用的AJAX操作,jQuery提供了一些輔助方法。由于GET請(qǐng)求最常見,所以jQuery提供了get()方法,可以這么寫:

var jqxhr = $.get('/path/to/resource', {
  name: 'Bob Lee',
  check: 1
});

第二個(gè)參數(shù)如果是object,jQuery自動(dòng)把它變成query string然后加到URL后面,實(shí)際的URL是:

/path/to/resource?name=Bob%20Lee&check=1

這樣我們就不用關(guān)心如何用URL編碼并構(gòu)造一個(gè)query string了。

post

post()和get()類似,但是傳入的第二個(gè)參數(shù)默認(rèn)被序列化為application/x-www-form-urlencoded

var jqxhr = $.post('/path/to/resource', {
  name: 'Bob Lee',
  check: 1
});

實(shí)際構(gòu)造的數(shù)據(jù)name=Bob%20Lee&check=1作為POST的body被發(fā)送。

getJSON

由于JSON用得越來(lái)越普遍,所以jQuery也提供了getJSON()方法來(lái)快速通過GET獲取一個(gè)JSON對(duì)象:

var jqxhr = $.getJSON('/path/to/resource', {
  name: 'Bob Lee',
  check: 1
}).done(function (data) {
  // data已經(jīng)被解析為JSON對(duì)象了
});

安全限制

jQuery的AJAX完全封裝的是JavaScript的AJAX操作,所以它的安全限制和前面講的用JavaScript寫AJAX完全一樣。
如果需要使用JSONP,可以在ajax()中設(shè)置jsonp: 'callback',讓jQuery實(shí)現(xiàn)JSONP跨域加載數(shù)據(jù)。

以上是“jQuery怎么使用ajax”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

本文名稱:jQuery怎么使用ajax
轉(zhuǎn)載注明:http://bm7419.com/article0/pcgjio.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃網(wǎng)站營(yíng)銷營(yíng)銷型網(wǎng)站建設(shè)、軟件開發(fā)、網(wǎng)站建設(shè)網(wǎng)站改版

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運(yùn)營(yíng)