Доступ к данным JSON из внешнего JavaScript

Я хотел бы использовать ванильный JavaScript для доступа к некоторым данным API MeetUp. Я использую следующий код на моем сайте:

function addScript(src) {
    console.log(src);
    var s = document.createElement( 'script' );
    s.setAttribute( 'src', src );
    document.body.appendChild( s );
}

addScript('https://api.meetup.com/2/groups?callback=?&sign=true&member_id=8377069&page=20&api&key=API_KEY_GOES_HERE&only=name,link');

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

Приведенный выше код возвращает эту ошибку:

Uncaught SyntaxError: Неожиданный токен:

Я считаю, что это потому, что возвращается формат JSON. Как я могу это исправить, но в то же время получить доступ к данным JSON. Любая помощь высоко ценится.

Пример ссылки: http://jsfiddle.net/londonfed/7ms44ft6/

2 ответа

Поскольку API встречи поддерживает параметр обратного вызова, создайте глобальную функцию (в окне) и установите для параметра обратного вызова имя функции:

function addScript(src) {
    console.log(src);
    var s = document.createElement( 'script' );
    s.setAttribute( 'src', src );
    document.body.appendChild( s );
}

// Callback for loading api data:
window.apiCallback = function(data) {
     // do what you want with the data
     alert(data.results[0].name);
}
addScript('https://api.meetup.com/2/groups?callback=apiCallback&sign=true&member_id=8377069&page=20&api&key=API_KEY_GOES_HERE&only=name,link');

Вам необходимо указать параметр обратного вызова в вашем URL, который будет совпадать с именем функции, которая будет использоваться для обработки возвращаемых данных:

function processJSONP(json) {
  console.log(json.results);
}

addScript('https://api.meetup.com/2/groups?callback=processJSONP&sign=true&member_id=8377069&page=20&api&key=5746c1b12324669953258703b11&only=name,link');

Помни что results это массив, который вам нужно зациклить

Другие вопросы по тегам