извлечение JSON из API Bandcamp - PullRequest
0 голосов
/ 28 мая 2011

извините, если об этом спрашивалось ранее, я пытался найти, но Динт дошел до начала: http://bandcamp.com/developer

Я пытаюсь получить bandID исполнителя

var my_url = 'http://api.bandcamp.com/api/band/3/search?key=snaefellsjokull&name=metallica';

$.ajax({
                'url' : my_url,
                'type':"GET",
                success: function(res){
                    var bandId = res.result[0].bandId;
                    console.log(bandId);
                }
});

, ноя всегда получаю ошибку 405, что этот метод не допускается.

Я тоже пробовал:

$.getJSON(my_url, function(res){
                    var bandId = res.result[0].bandId;
                    findDisco(bandId);
                })

и

 var abc= $.parsejson(my_url);
 abc.res.result[0].bandId;

, если вы выполняете URL в панели навигации, он выбирает json ... и я подтвердил этос json lint .. я думаю, что я делаю очень глупую ошибку .. может кто-нибудь помочь?

спасибо заранее !!

1 Ответ

0 голосов
/ 28 мая 2011

Во-первых, вам нужно использовать JSONP (потому что вы выбираете из другого домена, как я объяснил в моем комментарии), который поддерживается:

Параметры. Тамтри параметра, которые применяются к каждому вызову функции:

key - Ваш ключ разработчика должен быть включен в каждый вызов.
debug - Необязательный параметр, который инструктируетAPI для возврата текста большого двоичного объекта JSON в более понятном для человека формате, включая пробелы и символы новой строки.
callback - Если вы включите этот параметр, ответ будет использовать формат JSONP с указанной функцией обратного вызоваимя.

Во-вторых, вам нужно получить доступ к нужным полям.Например, res.results вместо res.result и band_id вместо bandId:

Отклик

Для идентификатора одной полосы откликхеш со следующими элементамиДля пакетного режима ответом является хеш-код, отображающий запрошенные идентификаторы диапазонов на их информационные блоки.

band_id - числовой идентификатор диапазона.
name - название группы.Это может быть не уникально, особенно если группа стесняется назвать свое имя.
subdomain - поддомен группы.Это будет уникально для всех групп.
url - домашняя страница группы.
offsite _url - альтернативная домашняя страница группы, а не на Bandcamp.

Все взято из документации, на которую вы ссылались .

Это работает:

var my_url = 'http://api.bandcamp.com/api/band/3/search?key=snaefellsjokull&name=metallica&callback=?';

$.ajax({
    'url': my_url,
    'type': "GET",
    'dataType': 'jsonp',
    success: function(res) {
        var bandId = res.results[0].band_id;
        console.log(bandId);
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...