JQuery getJSON不';行不通

JQuery getJSON不';行不通,jquery,ajax,mediawiki-api,Jquery,Ajax,Mediawiki Api,我正试图通过AJAX从维基百科获取一些数据。在摆弄API一段时间后,我的请求URL实际上显示了我需要的内容,即某个部分的文本。但是我的AJAX请求没有返回它。以下是我的功能: function getSectionText(page, section) { $.getJSON( 'http://en.wikipedia.org/w/api.php?action=query', { prop: 'revisions', rvl

我正试图通过AJAX从维基百科获取一些数据。在摆弄API一段时间后,我的请求URL实际上显示了我需要的内容,即某个部分的文本。但是我的AJAX请求没有返回它。以下是我的功能:

function getSectionText(page, section) {
    $.getJSON(
        'http://en.wikipedia.org/w/api.php?action=query', {
            prop: 'revisions',
            rvlimit: '1',
            rvsection: section,
            rvprop: 'content',
            format: 'json',
            titles: page
        },
        function(data) {
            return data;
        }
    )
}
这与起源无关,因为我使用Chrome的JS控制台从Wikipedia页面启动我的函数。然而,当我编写
var someVariable=getSectionText(wgPageName,someNumber)
,然后尝试调用
someVariable
,Chrome说它是“未定义的”。救命啊


示例URL:.

AJAX是异步的!无法从
$.getJSON
返回数据。您需要在回调中执行与返回的JSON相关的所有操作

function getSectionText(page, section) {
    $.getJSON(
        'http://en.wikipedia.org/w/api.php?action=query', {
            prop: 'revisions',
            rvlimit: '1',
            rvsection: section,
            rvprop: 'content',
            format: 'json',
            titles: page
        },
        function(data) {
            console.log(data);
        }
    );
}
或者,您可以使用返回的
promise
对象,并将回调附加到该对象

function getSectionText(page, section) {
    return $.getJSON(
        'http://en.wikipedia.org/w/api.php?action=query', {
            prop: 'revisions',
            rvlimit: '1',
            rvsection: section,
            rvprop: 'content',
            format: 'json',
            titles: page
        }
    );
}

getSectionText('User:Bluefire272', 1).done(function(data){
    // You can use your data here
})

尝试将数据对象记录到控制台,并检查得到的结果。console.log(数据)console.log()做什么:o@Bluefire:使用
Ctrl
+
Shift
+
J
打开控制台(在大多数浏览器中)。如果我想实际使用该数据怎么办?是否有一种方法可以从函数中检索它,例如,将其分配给变量,etc@Bluefire:你想用它做什么?您可以将其设置为全局变量,并在AJAX调用完成时读取它,但您仍然需要等到AJAX调用完成后才能使用它。是的,这很好。我只想检索它并在函数之外使用它。我该怎么做?