jQuery обнаруживает часть callback=?
вашего URL и автоматически переключает dataType с 'json'
на 'jsonp'
.
JSONP - это запрос JSON, который не выполнен с использованием XMLHttpRequestно добавив тег скрипта на вашу страницу.Обратный вызов в ваш скрипт обрабатывается вызывающей стороной, которая дает имя функции JavaScript, которая будет выполняться при загрузке скрипта.Вот почему междоменный домен работает.
jQuery будет прозрачно обрабатывать JSONP для вас в запросе $ .ajax.Ручной (и для меня более понятный) способ сделать это - определить 'jsonp'
dataType и использовать заполнитель ?
для имени обратного вызова в URL.jQuery автоматически заменит ?
на соответствующее значение, чтобы вызвать ваш успешный обратный вызов.
$.ajax(
{
url : "http://api.twitter.com/1/users/show/google.json&jsoncallback=?",
dataType : 'jsonp',
success : function(data)
{
alert(data.results.length);
}
});