2013-02-15 56 views
0

我是jquery的新手。我的應用程序已經建立。我看到使用了兩個ajax方法$.getJSON()和$ .ajax()。這裏我不明白的是在$.getJSON()的情況下,成功函數中接收到的數據直接作爲對象使用。但在$ .ajax的情況下,我看到代碼 var json = eval('(' + data + ')');,爲什麼我們需要執行此轉換,爲什麼$.getJSON()方法不需要。請幫助我理解。下面是$ .ajax()和$ .getJSON()代碼。

$.ajax({ 
    type: 'POST', 
    url: ServiceUrl.SystemConfig, 
    data: "", 
    success : function(data) { 
     var json = eval('(' + data + ')'); 
    } 

    $.getJSON('/index', "", 
    function(json, textStatus) { }) 
+1

http://api.jquery.com/jQuery.getJSON/ – 2013-02-15 17:30:43

+0

可能Content-Type設置不正確?或者,可能錯誤的函數被用來加載JS內容?反正沒有示例反應,我們無法說明原因 – Alexander 2013-02-15 17:31:55

回答

1

$.getJSON(url [, data ] [, success(data, textStatus, jqXHR) ])方法是

$.ajax({ 
    dataType: "json", 
    url: url, 
    data: data, 
    success: success 
}); 

快捷方式如果你read the documentation,你會看到這一點。

0

$ .getJSON是一個快捷方式,用於在$ .ajax請求中將預期的Content-Type設置爲application/json,它會告訴jQuery在返回之前將響應解析爲JSON對象。當你知道你會收到JSON時,這非常有用。 $ .ajax更通用,因此不知道它會得到JSON,除非特意告知。這意味着$ .ajax的響應不會被預解析,而必須自己完成。