Проблема с jQuery и $.ajax при попытке разобрать JSONP

Итак, вот мой URL-адрес JSONP:

http://community.tradeking.com/leaderboard.js

И вот jQuery, с помощью которого я пытаюсь его разобрать:

$.ajax({
  dataType: 'jsonp',
  jsonp: 'callback',
  url: 'http://community.tradeking.com/leaderboard.js?callback=?',
  success: function () {
    alert("something");
  },
});

И вот ошибка, которую я получаю в Firebug:

processLeaderboard не определен

Я также пробовал getJSON и специальный плагин jQuery JSONP, но все они терпят неудачу одинаково. JSONP успешно используется в других местах.


person ahow    schedule 02.03.2010    source источник


Ответы (2)


Это отлично сработало для меня в jsbin с использованием chrome.

var processLeaderboard = function(x) {
  alert(x[0].member.avatar.public_filename);
};

$(document).ready(function() {

   $.ajax({
     dataType: 'jsonp',
     jsonp: 'processLeaderboard',
     url: 'http://community.tradeking.com/leaderboard.js?callback=?'

   });
});​
person Hogan    schedule 02.03.2010

Вам нужна функция с именем processLeaderboard, так как это имя функции кажется жестко запрограммированным в ответе по вашей ссылке.

var processLeaderboard = function (data) {
  alert('Do your stuff here');
}

$.ajax({
  dataType: 'jsonp',
  jsonpCallback: 'processLeaderboard',
  url: 'http://community.tradeking.com/leaderboard.js?callback=?',
  success: function () {
    alert("something");
  },
});
person PatrikAkerstrand    schedule 02.03.2010
comment
Кажется, это не работает. Я все еще получаю, что processLeaderboard не определен. - person ahow; 03.03.2010
comment
Используйте jsonpCallback: 'processLeaderboard' вместо jsonp: 'processLeaderboard' - person Tim R; 03.03.2010