我想使用vanilla JavaScript来访问一些MeetUp API数据。我在我的网站上使用以下代码:
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数据。任何帮助非常感谢。
答案 0 :(得分:4)
由于meetup API支持回调参数,因此创建一个全局函数(在窗口中)并将callback参数设置为函数名称:
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');
答案 1 :(得分:1)
您需要在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
是一个需要循环的数组。