我正在从维基百科中获取随机文章,我可以在Chrome控制台中看到该对象作为输出,但在网页上,它只是说未定义。 我已经尝试过stringify以及显示来自对象的元素[2] [0] [0] [3],但它们都不起作用。他们都说print'undefined'作为输出而不是对象中包含的随机wiki页面的标题或内容或url。
脚本代码:
$(function() {
$("#random").on("click", function() {
var url = 'https://en.wikipedia.org/w/api.php?format=json&action=query&generator=random&grnnamespace=0&prop=revisions&rvprop=content&grnlimit=1&callback=?';
$.ajax({
url: url,
type: 'GET',
contentType: "application/json; charset=utf-8",
async: false,
dataType: "json",
success: function(data, status, jqXHR) {
console.log(data);
$('#result').html();
$('#result').prepend("<div><div class='result-head'>" + JSON.stringify(data[2]) + "</div></div>");
//stringify(data[2][0][0])
}
})
.done(function() {
console.log("success");
})
.fail(function() {
console.log("fail");
})
.always(function() {
console.log("always success");
})
//
})
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id="random">Random</button>
<div id="result"></div>
答案 0 :(得分:1)
如果您只想从Ajax响应中获取内容正文,可以尝试以下方法:
$(function() {
$("#random").on("click",function() {
var url = 'https://en.wikipedia.org/w/api.php?format=json&action=query&generator=random&grnnamespace=0&prop=revisions&rvprop=content&grnlimit=1&callback=?';
$.ajax({
url: url,
type: 'GET',
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(data, status, jqXHR) {
var pageId = Object.keys(data.query.pages)[0] || false;
if (pageId){
var articleContent = data.query.pages[pageId].revisions[0]['*'];
$('#result').html();
$('#result').prepend("<div><div class='result-head'>"+articleContent+"</div></div>");
}
}}
)
.done(function() {
console.log("success");
})
.fail(function() {
console.log("fail");
})
.always(function() {
console.log("always success");
})
//
})
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id="random">Get Random</button>
<div id="result"></div>
答案 1 :(得分:0)
这是有效的。水平令人困惑的是:
function (action) {
if (typeof action === 'function') {
return action(dispatch, getState, extraArgument);
}
return next(action);
}