在jQuery中,異步操作往往會使用到ajax方法。ajax方法本身會返回一個Deferred對象,可以利用該對象的done和fail方法來處理請求成功和失敗的情況。
$.ajax({ url: 'test.php', type: 'POST', data: {name: '張三', age: 18} }).done(function(response) { // 處理請求成功的情況 console.log(response); }).fail(function(jqXHR, textStatus, errorThrown) { // 處理請求失敗的情況 console.error(jqXHR, textStatus, errorThrown); });
在上述代碼中,我們利用了ajax方法發(fā)送了一次POST請求,并在done和fail中分別處理了請求成功和請求失敗的情況。如果請求成功,我們會獲取到服務(wù)器的響應(yīng),并將其打印在控制臺上;如果請求失敗,我們則會輸出包含錯誤信息的對象。
需要注意的是,done和fail方法都可以接受多個回調(diào)函數(shù)作為參數(shù)。因此,我們可以在一個ajax請求中處理多個響應(yīng)情況,如下所示:
$.ajax({ url: 'test.php', type: 'POST', data: {name: '張三', age: 18} }).done(function(response) { // 處理請求成功的情況 console.log(response); // 另外一個請求 $.ajax('test2.php').done(function(response2) { console.log(response2); }).fail(function(jqXHR2, textStatus2, errorThrown2) { console.error(jqXHR2, textStatus2, errorThrown2); }); }).fail(function(jqXHR, textStatus, errorThrown) { // 處理請求失敗的情況 console.error(jqXHR, textStatus, errorThrown); });
在上述代碼中,當(dāng)?shù)谝粋€ajax請求成功后,我們又發(fā)起了一個ajax請求,并在其中分別處理了請求成功和請求失敗的情況。