2013-11-04 54 views
0

我有兩個關於jQuery AJAX的問題。這些AJAX方法有什麼區別嗎?

1)$.load()$.ajax() used with type: 'GET'之間有什麼區別嗎?他們似乎做同樣的工作。

2)此問題與下面的代碼有關。如果我根本不寫「類型:GET」行,會發生什麼?這是否意味着同樣的事情?

$(document).ready(function() { 
    $('#update').click(function() { 
    $.ajax({ 
     type: 'GET', 
     url: 'hello-ajax.html', 
     dataType: 'html', 
     success: function(html, textStatus) { 
     $('body').append(html); 
     }, 
     error: function(xhr, textStatus, errorThrown) { 
     alert('An error occurred! ' + (errorThrown ? errorThrown : 
     391 
     xhr.status); 
     } 
    }); 
    }); 
}); 

是從

$(document).ready(function() { 
    $('#update').click(function() { 
    $.ajax({ 
     url: 'hello-ajax.html', 
     dataType: 'html', 
     success: function(html, textStatus) { 
     $('body').append(html); 
     }, 
     error: function(xhr, textStatus, errorThrown) { 
     alert('An error occurred! ' + (errorThrown ? errorThrown : 
     391 
     xhr.status); 
     } 
    }); 
    }); 
}); 
+2

哈哈!關於AJAX調用的2本書?我想知道他們發表了什麼話來寫一本關於這本書的書! – jbx

+2

load does [this](http://api.jquery.com/load/),ajax does [this](http://api.jquery.com/jQuery.ajax/) – Liam

+2

您是否錯過了手冊在哪裏解釋了區別? – JJJ

回答

3

任何不同這是直接從jQuery的文檔(http://api.jquery.com/load/

的.load()方法,不像$獲得(),讓我們指定要插入的遠程文檔的一部分 。這是通過url參數的特殊 語法實現的。如果字符串中包含一個或多個空格字符 ,則假定第一個 空間後面的字符串部分是用於確定要加載的內容 的jQuery選擇器。

由於$.get()僅僅是$.ajax()簡寫「的數據:‘獲取’」,它會出現在唯一的主要區別是做上述(文檔的導入部分區段)的能力。

編輯:要回答第二個問題,GET是$ .ajax()調用的默認數據類型,POST是您的其他選項。你可以閱讀一些有關的帖子在這裏(http://api.jquery.com/jQuery.post/

+0

@HananAlaca樂於幫忙!不要忘記檢查最合適的答案是否正確! –

2

從jQuery的手動.load

這種方法是從服務器獲取數據最簡單的方法提取。它是 大致相當於$ .get(url,data,success),除了它是一個 方法而不是全局函數並且它有一個隱式回調函數 。當檢測到成功響應時(即當textStatus 爲「成功」或「未修改」時),.load()將匹配元素的HTML內容設置爲返回的數據。這意味着 方法的大多數用途可以是相當簡單:

$("#result").load("ajax/test.html"); 

如果沒有元件被選擇匹配的 - 在這種情況下,如果 文件不包含具有ID的元素= 「結果」 - Ajax 請求將不會被髮送。

+0

我添加了網址,很抱歉,謝謝您的澄清 – Bermudillo

0

我想區別在於.load()函數允許將結果定位到DOM元素。像這樣

$("#target").load("source.html"); 

然後ajax()方法返回一個可以被操作的對象(例如JSON)。除了更多的屬性。