API Songkick с использованием JQuery

У меня возникают проблемы со сбором данных с помощью JSON в API Songkick. Я действительно новичок в jQuery и Javascript, поэтому, пожалуйста, простите меня, если это выглядит действительно грубо. Я потратил некоторое время, пытаясь изучить правильный синтаксис, который мне нужен, но я просто продолжаю возвращаться к исходной точке.

То, что я пытаюсь сделать, это сделать запрос с помощью jQuery, а затем добавить результаты в мой HTML в список. Любая помощь, которую кто-либо может дать мне, была бы фантастической.

Вот что у меня есть до сих пор.

<script>
$.getJSON("http://api.songkick.com/api/3.0/artists/3950031/calendar.json?apikey={apikey}",
function(data){
var events = data['resultsPage']['results']['event'];
for (var i=0;i < events.length; i++) {


$("#events").append('<li><a
href="'+events[i]['uri'])+'">'+events[i]['displayName']+'</a></li>');
}

}); 

</script>

Спасибо!


person Adam Brace    schedule 23.01.2012    source источник
comment
вы подали заявку на ключ API? это необходимо для его работы, он должен идти вместо {apikey}   -  person Gordnfreeman    schedule 24.01.2012
comment
Я сделал, да, я не хотел размещать это здесь, на случай, если оно будет использовано несанкционированно.   -  person Adam Brace    schedule 24.01.2012


Ответы (1)


извините, я так долго не возвращался, я ушел из офиса примерно в то время, когда вы ответили прошлой ночью

вот что я придумал:

  $(document).ready(function() {
  $.ajax({
  url:  "http://api.songkick.com/api/3.0/artists/480448/calendar.json?apikey=APIKEY&jsoncallback=?",
  dataType:   "jsonp", // <== JSON-P request
  success:    function(data){ 
    $.each(data["resultsPage"]["results"]["event"], function(i, entry){
        $("#events").append('<li><a href="' + entry.uri+'">'+entry.displayName +'</a></li>');
    });
  }     
  });
  });

Я думаю, что проблема, с которой вы столкнулись, была связана с JSON, JSON подчиняется той же политике происхождения (о которой я читал здесь ( $.getJSON не работает ). Вместо этого вы должны использовать JSON-P, добавляя

   &jsoncallback=?

в конце URL указывает Songkick отправить его как запрос JSON-P. Это было главной проблемой.

Другие проблемы включали незначительные ошибки кодирования: была дополнительная ( в вашей строке добавления, я также использовал $.Each как дополнение к циклу for, но любой из них будет работать, надеюсь, это поможет, и вы можете удалить свой код API, если исправление сработало :) Просто измените ключ API на свой ключ, и все должно быть в порядке (я также изменил группу на chevelle, так как у другого не было записей)

person Gordnfreeman    schedule 24.01.2012