Songkick API Использование JQuery - PullRequest
2 голосов
/ 24 января 2012

У меня проблемы со сбором данных с помощью JSON в Songkick API.Я действительно новичок в 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>

Спасибо!

1 Ответ

2 голосов
/ 24 января 2012

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

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

  $(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, так как у другой не было записей)

...