2013-03-22 103 views
0

我想使用JQuery的$ .ajax請求從服務器檢索一些JSON數據。我在JQuery的文檔中看過,它們的所有設置都是可選的,這不能幫助我理解我需要或不需要的東西。我不確定我需要什麼。以下是我有:JQuery的AJAX請求:檢索JSON數據需要什麼設置?

JS代碼:

function retrieve() { 
    $.ajax({ 
     url : 'some_url', 
     type : 'POST', 
     dataType: 'JSON', 
     contentType : 'application/json', 
     data : JSON.stringify({ 
      key : 'value: ' 
     }), 
     error : function(data) { 
      console.log('error'); 
     }, 
     success : function(data) { 
        // callback function? 
     } 
    }); 
} 

我希望我的.retrieve()方法,以能夠接受包含像這樣的服務器上的所有陣列的功能:

SomeObject.retrieve(function(array){ 
     // do something w/ array 
} 

問題:我是否需要省略或添加任何設置?我如何生成回調函數,以便在消息下載後我可以使用它的數據?任何答覆將不勝感激!謝謝!

+0

回調函數是成功函數。你有「//回調函數?」的那個評論。您可以將函數傳遞給您的檢索方法,並使用此函數初始化成功字段。你爲什麼不測試你的代碼,而不是問它是否會工作? – 2013-03-22 23:12:15

+0

@JB Nizet感謝您的快速回復。我將如何初始化成功字段以創建回調函數?我是否在'成功'設置中創建了一個函數? – andy4thehuynh 2013-03-22 23:17:29

回答

2

要在Ajax響應已成功接收(在下面的例子中,顯示一個警告框接收數據)執行的東西:

function retrieve() { 
    $.ajax({ 
     ..., 
     success: function(data) { 
      alert("Yes! AJAX worked. I received the following data: " + data); 
     } 
    }); 
} 

爲了能夠自定義成功的回調函數傳遞到您的檢索方法:

function retrieve(successCallback) { 
    $.ajax({ 
     ..., 
     success: successCallback 
    }); 
} 
-1

使用JQuery的.get()和.post()更容易理解。使用.get()從服務器檢索數據,如下所示:

$.get('ajax/test.html', function(data) { 
    $('.result').html(data); 
    alert('Load was performed.'); 
}); 

這將從test.html獲取信息。你需要知道你從哪裏獲取數據的網址。這可以是您的服​​務器上的控制器。然後函數參數是成功時發生的。在這裏它會用你的數據填充結果元素html,並提醒你已經執行了加載。