维基百科API解析操作仅返回“其他语言”部分
Wikipedia API parse action only returning "other languages" section
我正在尝试显示随机的维基百科文章。我有一个随机页面 ID 的 ajax 请求和一个内部 ajax 请求来解析该页面 ID 的文本。我每次都会得到一个随机的页面 ID,但是当我尝试使用内部 ajax 请求显示它时,显示的只是"其他语言"部分。
我正在使用维基百科 API 沙箱指定的调用,但我没有得到该页面上显示的相同结果。有什么见解吗?
这是我的函数:
$(document).ready(function () { //document.ready
$('#random-btn').click(function() { //random-btn click
$.ajax ({ //ajax random page
url: "http://www.mediawiki.org/w/api.php",
jsonp: "callback",
dataType: 'jsonp',
data: {
action: "query",
format: "json",
list: "random",
},
success: function (randomPage) { //random page success
var randomID = randomPage.query.random[0].id.toString();
console.log(randomID);
$.ajax ({ //ajax display given page
url: "http://www.mediawiki.org/w/api.php?action=parse&format=json&pageid=367435",
jsonp: "callback",
dataType: 'jsonp',
data: {
action: "parse",
format: "json",
pageids: randomID,
},
success: function (jsonObject) { //display success
var displayText = jsonObject.parse.text["*"];
$('#display').html(displayText);
} //display success
}) //ajax display given page
} //random page success
}) //ajax random page
}) //random-btn click
}) //document.ready
您也可以通过在一个请求中使用带有 extracts 属性的生成器来完成所有这些操作。检查参数以获取更多选项。
$(document).ready(function () {
$('#random-btn').click(function () {
$('#display').empty();
$.ajax({
url: 'http://www.mediawiki.org/w/api.php',
dataType: 'jsonp',
data: {
action: 'query',
format: 'json',
generator: 'random',
prop: 'extracts',
grnnamespace: 0,
explaintext: true
},
success: function (result) {
var pages = result.query.pages;
var page = pages[Object.keys(pages)[0]];
$('#display').append($('<h2>').text(page.title));
$('#display').append($('<p>').text(page.extract));
}
});
});
});
<!DOCTYPE html>
<html>
<body>
<button id="random-btn">Get random</button>
<div id="display"></div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
</body>
</html>
相关文章:
- 如何从ipify函数返回ip地址,以便在其他函数中使用
- 如何将日期选择器返回的日期格式转换为其他格式
- 有没有办法将选择器返回到元素?是$(这个)还是其他方法
- 从异步调用返回数组,然后为数组的每个元素返回其他异步调用
- 根据其他属性返回的值设置属性
- 如果's,如果未安装,则返回到其他URL
- AJAX请求返回Javascript获胜't返回特定函数,但将返回其他函数
- JavaScript:通过其他数组元素的索引访问ArrayElement?array[array[0]返回undefin
- 返回带有其他函数的变量
- 为什么 Math.log10 在某些系统上工作,但在其他系统上返回未定义
- 为什么SQL返回的字符串长度与其他语言返回的长度不同
- 如何防止谷歌地理编码器从其他国家/地区返回结果
- 如何设置我们从 JavaScript 中其他元素的属性返回的值 onclick 函数
- Jquery ajax 请求无法将数据返回给其他函数
- 在两个或多个 UL 列表之间切换,如果单击一个列表,则其他列表会自动以初始状态返回,就像从未单击过一样
- 维基百科API解析操作仅返回“其他语言”部分
- JQuery ajax 将值返回给其他函数
- 阻止其他代码运行,直到 AJAX 请求返回某些内容
- Javascript在IE7,8,9中返回控制台错误,但在所有其他浏览器中都能完美运行
- 我可以将字段保留在填充的表单中,即使我移动到其他页面然后返回