Если вы только начинаете углубляться в jQuery, различные доступные в нем методы AJAX, на которые вы могли наткнуться, немного обескураживают; а не должны. Фактически, большинство из них – просто вспомогательные методы, ведущие прямиком к $.ajax.
get
getJSON
post
ajax
Как пример давайте рассмотрим getJSON, который позволяет нам получить JSON.
$.getJSON('path/to/json', function(results) {
// обратный вызов
// results содержит возвращенный объект data
});
За кулисами этот метод сначала вызывает $.get.
getJSON: function( url, data, callback ) {
return jQuery.get(url, data, callback, "json");
}
$.get затем компилирует пересланные данные и заново вызывает "хозяйский" (как бы) метод $.ajax.
get: function( url, data, callback, type ) {
// перемещение аргументов, если аргумент data был пропущен
if ( jQuery.isFunction( data ) ) {
type = type || callback;
callback = data;
data = null;
}
return jQuery.ajax({
type: "GET",
url: url,
data: data,
success: callback,
dataType: type
});
}
Наконец, $.ajax выполняет большое количество работы, чтобы дать нам возможность успешно произвести асинхронные запросы через все браузеры!
Это значит – вы можете с тем же успехом использовать метод $.ajax напрямую и исключительно для всех запросов AJAX. Прочие методы – просто вспомогательные, которые, как бы то ни было, в конце концов делают то же самое. Итак, если хотите, исключите посредника. Это в любом случае незначительная проблема.
Поистине высший класс:
$.getJSON('path/to/json', function(results) {
// обратный вызов
// results содержит возвращенный объект data
});
Еще эффективнее:
$.ajax({
type: 'GET',
url : 'path/to/json',
data : yourData,
dataType : 'json',
success : function( results ) {
console.log('success');
})
});