国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

jQuery使用ajax_動力節點Java學院整理

2019-11-19 16:10:06
字體:
來源:轉載
供稿:網友

用JavaScript寫AJAX前面已經介紹過了,主要問題就是不同瀏覽器需要寫不同代碼,并且狀態和錯誤處理寫起來很麻煩。

用jQuery的相關對象來處理AJAX,不但不需要考慮瀏覽器問題,代碼也能大大簡化。

ajax

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

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

下面的例子發送一個GET請求,并返回一個JSON格式的數據:

var jqxhr = $.ajax('/api/categories', {  dataType: 'json'});// 請求已經發送了

不過,如何用回調函數處理返回的數據和出錯時的響應呢?

還記得Promise對象嗎?jQuery的jqXHR對象類似一個Promise對象,我們可以用鏈式寫法來處理各種回調:

'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('成功, 收到的數據: ' + JSON.stringify(data));}).fail(function (xhr, status) {  ajaxLog('失敗: ' + xhr.status + ', 原因: ' + status);}).always(function () {  ajaxLog('請求完成: 無論成功或失敗都會調用');});

get

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

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

第二個參數如果是object,jQuery自動把它變成query string然后加到URL后面,實際的URL是:

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

這樣我們就不用關心如何用URL編碼并構造一個query string了。

post

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

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

實際構造的數據name=Bob%20Lee&check=1作為POST的body被發送。

getJSON

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

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

安全限制

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

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 育儿| 五寨县| 屏东县| 安仁县| 苏尼特左旗| 两当县| 包头市| 阜城县| 泾川县| 兴海县| 台南县| 青海省| 晴隆县| 淮阳县| 广东省| 吉木乃县| 简阳市| 隆化县| 通河县| 吴堡县| 清丰县| 九龙城区| 洛阳市| 民乐县| 堆龙德庆县| 郓城县| 辽宁省| 巨野县| 雷州市| 左云县| 宁河县| 陇南市| 玉环县| 钟祥市| 兴文县| 高邑县| 商南县| 凤阳县| 沧州市| 彰化县| 巴塘县|