![](/img/trans.png)
[英]JSON object showing objects in console but also contains 'undefined' from string returned by php script
[英]My JSON object is returned as undefined despite showing correctly in the chrome console?
我從Wikipedia提取了一篇隨機文章,可以在Chrome控制台中看到該對象作為輸出,但是在網頁上,它只是說未定義。 我嘗試了字符串化以及將對象中的元素顯示為[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>
如果只想從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>
這是可行的。 級別令人困惑的是:
$(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',
dataType: "json",
success: function(data, status, jqXHR) {
console.log(data);
$('#result').html();
var pageTitle = JSON.stringify(data.query.pages[Object.keys(data.query.pages)[0]].title);
var pageContent = data.query.pages[Object.keys(data.query.pages)[0]].revisions;
var pageCon = pageContent[Object.keys(pageContent)[0]];
var pageC = pageCon["*"];
//data.query.pages[Object.keys(data.query.pages)[0]];
$('#result').prepend("<div><div class='result-head'>"+pageC+"</div></div>");
$('#result').prepend("<div><h2>"+pageTitle+"</h2></div>");
//stringify(data[2][0][0])
}}
)
.done(function() {
console.log("success");
})
.fail(function() {
console.log("fail");
})
.always(function() {
console.log("always success");
})
//
})
})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.