如何获取异步JSONP请求的值?

时间:2011-11-28 19:34:21

标签: javascript

我需要收到JSONP异步请求的值。当我分配"数据"到全局变量,我收到一个空对象。求你帮帮我。

现在,我的代码得到了

var url = "http://local/main/getEventData/" + event_id;
var script = document.createElement('script');
script.setAttribute('src', url);
document.getElementsByTagName('head')[0].appendChild(script);

var event_data = {};

function callback(data) {
    event_data = data;
}

和JSONP

callback({name: 'John'})

PS请求绝对有效,我可以通过console.log(数据)显示数据变量

2 个答案:

答案 0 :(得分:2)

当你得到数据时使用数据,而不是(正如我假设你现在正在尝试的那样),只要你被要求它。

function callback(data) {
    event_data = data;
    // Now you have the data, do something with it.
}

// Don't try to use event_data here. There's no way 
// to know if the callback has fired yet

答案 1 :(得分:1)

你得到的东西会很好用。您只需要将代码(或调用函数或其他内容)置于“回调”函数中,以便在检索脚本之前代码不会运行。