Доступ к данным 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
это массив, который вам нужно зациклить