JQuery getJSON不';行不通
我正试图通过AJAX从维基百科获取一些数据。在摆弄API一段时间后,我的请求URL实际上显示了我需要的内容,即某个部分的文本。但是我的AJAX请求没有返回它。以下是我的功能: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
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调用完成后才能使用它。是的,这很好。我只想检索它并在函数之外使用它。我该怎么做?