jQuery使用ajax_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
用JavaScript寫(xiě)AJAX前面已經(jīng)介紹過(guò)了,主要問(wèn)題就是不同瀏覽器需要寫(xiě)不同代碼,并且狀態(tài)和錯(cuò)誤處理寫(xiě)起來(lái)很麻煩。
用jQuery的相關(guān)對(duì)象來(lái)處理AJAX,不但不需要考慮瀏覽器問(wèn)題,代碼也能大大簡(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ā)送了
不過(guò),如何用回調(diào)函數(shù)處理返回的數(shù)據(jù)和出錯(cuò)時(shí)的響應(yīng)呢?
還記得Promise對(duì)象嗎?jQuery的jqXHR對(duì)象類(lèi)似一個(gè)Promise對(duì)象,我們可以用鏈?zhǔn)綄?xiě)法來(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)求最常見(jiàn),所以jQuery提供了get()方法,可以這么寫(xiě):
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()類(lèi)似,但是傳入的第二個(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)快速通過(guò)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寫(xiě)AJAX完全一樣。
如果需要使用JSONP,可以在ajax()中設(shè)置jsonp: 'callback',讓jQuery實(shí)現(xiàn)JSONP跨域加載數(shù)據(jù)。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法總結(jié)
- jquery ajax提交表單數(shù)據(jù)的兩種方式
- jquery實(shí)現(xiàn)ajax提交form表單的方法總結(jié)
- jQuery使用ajaxSubmit()提交表單示例
- jquery ajax例子返回值詳解
- jquery中ajax使用error調(diào)試錯(cuò)誤的方法
- JQuery AJAX提交中文亂碼的解決方案
- 基于JQuery框架的AJAX實(shí)例代碼
- JQuery的Ajax請(qǐng)求實(shí)現(xiàn)局部刷新的簡(jiǎn)單實(shí)例
- jquery ajax 向后臺(tái)傳遞數(shù)組參數(shù)示例
相關(guān)文章
JQuery實(shí)現(xiàn)動(dòng)態(tài)適時(shí)改變字體顏色的方法
這篇文章主要介紹了JQuery實(shí)現(xiàn)動(dòng)態(tài)適時(shí)改變字體顏色的方法,實(shí)例分析了jQuery操作鼠標(biāo)事件及顏色的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-03-03
jQuery插件ImgAreaSelect實(shí)現(xiàn)頭像上傳預(yù)覽和裁剪功能實(shí)例講解一
這篇文章主要介紹了jQuery插件ImgAreaSelect實(shí)現(xiàn)頭像上傳預(yù)覽和裁剪功能實(shí)例講解一,需要的朋友可以參考下2017-05-05
jQuery獲得頁(yè)面元素的絕對(duì)/相對(duì)位置即絕對(duì)X,Y坐標(biāo)
jQuery獲得頁(yè)面元素的絕對(duì)X,Y坐標(biāo),可以用offset()方法,下面有個(gè)不錯(cuò)的坐標(biāo)大家可以參考下2014-03-03
jquery用ajax方式從后臺(tái)獲取json數(shù)據(jù)后如何將內(nèi)容填充到下拉列表
從后臺(tái)獲取json數(shù)據(jù),將內(nèi)容填充到下拉列表,頁(yè)面做如何處理,接下來(lái),通過(guò)本篇文章給大家實(shí)例講解jquery用ajax方式從后臺(tái)獲取json數(shù)據(jù)后如何將內(nèi)容填充到下拉列表,需要的朋友可以參考下2015-08-08
jQuery EasyUI API 中文文檔 - Draggable 可拖拽
jQuery EasyUI API 中文文檔 - Draggable 可拖拽,使用jQuery EasyUI的朋友可以參考下。2011-09-09
jQuery simplePage+AJAX plus分頁(yè)插件用法實(shí)例
這篇文章主要介紹了jQuery simplePage+AJAX plus分頁(yè)插件用法,結(jié)合實(shí)例形式分析了jQuery基于extend擴(kuò)展實(shí)現(xiàn)分頁(yè)插件的具體技巧,需要的朋友可以參考下2016-02-02
jquery實(shí)現(xiàn)左右滑動(dòng)菜單效果代碼
這篇文章主要介紹了jquery實(shí)現(xiàn)左右滑動(dòng)菜單效果代碼,涉及jquery鼠標(biāo)事件及頁(yè)面元素動(dòng)態(tài)變換的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-08-08

