更新日期: 2025 年 3 月 9 日

本文為 jQuery 基本介紹系列文,第 8 篇:

url : ' https://api.example.com/data ' , method : ' GET ' , // 預設為 'GET' dataType : ' json ' , // 預設為 'text' data : { param1 : ' value1 ' , param2 : ' value2 ' }, // 傳遞給伺服器的數據 success : function ( response ) { console . log ( response ) ; // 成功回應的資料 error : function ( error ) { console . error ( ' 請求失敗: ' , error ) ; // 請求失敗的錯誤訊息 } ) ;

$.ajax 參數說明及預設值

$.get('https://api.example.com/data', { param1: 'value1' }, function(response) {
    console.log(response); // 成功回應的資料
});

.post 方法

$.post('https://api.example.com/data', { param1: 'value1' }, function(response) {
    console.log(response); // 成功回應的資料
});

在這兩個方法中:

method : ' GET ' , dataType : ' json ' } ) . done ( function ( data , textStatus , jqXHR ) { console . log ( ' 請求成功,回應資料: ' , data ) ; // 解析後的 JSON 資料 } ) . fail ( function ( error ) { console . error ( ' 請求失敗: ' , error ) ; // 處理錯誤 } ) ;

.done() 的應用場景

當需要鏈式操作時, .done() 方法比 success 回呼函數更具可讀性,且更方便組合多重異步操作。

例如,下例中在第一次請求後發送第二次請求:

$.ajax({ url: 'https://api.example.com/data', method: 'GET' })
    .done(function(data) {
        console.log('第一次回應資料:', data);
        return $.ajax({ url: 'https://api.example.com/nextData', method: 'GET' });
    .done(function(nextData) {
        console.log('第二次回應資料:', nextData);
    .fail(function(error) {
        console.error('請求失敗:', error);
    });

這樣的操作方式更直觀且易於維護。

比較 $.ajax.done fetch

JavaScript 的 fetch 是另一種非同步請求方法,返回一個 Promise 物件,並且不依賴 jQuery。

相比 $.ajax fetch 支援更現代的 Promise 語法及 async/await ,使代碼更加精簡易讀。

以下是 $.ajax.done fetch 的代碼示例及差異比較。

$.ajax.done 代碼範例

$.ajax({
    url: 'https://api.example.com/data',
    method: 'GET',
    dataType: 'json'
.done(function(data) {
    console.log('jQuery 回應資料:', data);
.fail(function(error) {
    console.error('jQuery 請求失敗:', error);
});

fetch 代碼範例

fetch('https://api.example.com/data')
    .then(response => response.json()) // 將回應轉為 JSON 格式
    .then(data => {
        console.log('fetch 回應資料:', data);
    .catch(error => {
        console.error('fetch 請求錯誤:', error);
    });
特性 $.ajax.done fetch
語法依賴 依賴 jQuery 函式庫 原生 JavaScript 支援
回傳資料處理 data 自動轉換為 JSON 格式 需手動調用 response.json() 解析
回應格式 自動根據 dataType 設定回應格式 默認為字串,手動解析
支援語法 支援 jQuery 的事件鏈結方法 .done() 支援 Promise 和 async/await
錯誤處理 使用 .fail() 或 error 回呼 使用 .catch() 或 try/catch 處理