Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/423.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 尽管在chrome控制台中正确显示,我的JSON对象仍返回为未定义?_Javascript_Html_Json_Getjson_Stringify - Fatal编程技术网

Javascript 尽管在chrome控制台中正确显示,我的JSON对象仍返回为未定义?

Javascript 尽管在chrome控制台中正确显示,我的JSON对象仍返回为未定义?,javascript,html,json,getjson,stringify,Javascript,Html,Json,Getjson,Stringify,我从维基百科随机获取了一篇文章,我可以在Chrome控制台中看到该对象作为输出,但在网页上,它只是说未定义。 我尝试过stringify以及将对象中的元素显示为[2][0][0][3],但都不起作用。他们都说打印“未定义”作为输出,而不是对象中包含的随机wiki页面的标题、内容或url 脚本代码: $(函数(){ $(“#随机”)。在(“单击”,函数(){ var url='1〕https://en.wikipedia.org/w/api.php?format=json&action=quer

我从维基百科随机获取了一篇文章,我可以在Chrome控制台中看到该对象作为输出,但在网页上,它只是说未定义。 我尝试过stringify以及将对象中的元素显示为[2][0][0][3],但都不起作用。他们都说打印“未定义”作为输出,而不是对象中包含的随机wiki页面的标题、内容或url

脚本代码:

$(函数(){
$(“#随机”)。在(“单击”,函数(){
var url='1〕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,
键入:“GET”,
contentType:“应用程序/json;字符集=utf-8”,
async:false,
数据类型:“json”,
成功:功能(数据、状态、jqXHR){
控制台日志(数据);
$('#result').html();
$('#result').prepend(“+JSON.stringify(数据[2])+”);
//字符串化(数据[2][0][0])
}
})
.done(函数(){
控制台日志(“成功”);
})
.fail(函数(){
控制台日志(“失败”);
})
.always(函数(){
console.log(“总是成功”);
})
//
})
})

随机的

如果您只想从Ajax响应中获取内容体,可以尝试以下方法:

$(函数(){
$(“#随机”)。在(“单击”,函数(){
var url='1〕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,
键入:“GET”,
contentType:“应用程序/json;字符集=utf-8”,
数据类型:“json”,
成功:功能(数据、状态、jqXHR){
var pageId=Object.keys(data.query.pages)[0]| | false;
如果(页面ID){
var articleContent=data.query.pages[pageId]。修订版[0]['*'];
$('#result').html();
$(“#结果”).prepend(“+articleContent+”);
}
}}
)
.done(函数(){
控制台日志(“成功”);
})
.fail(函数(){
控制台日志(“失败”);
})
.always(函数(){
console.log(“总是成功”);
})
//
})
})

随机

这是一个有效的方法。令人困惑的是:

$(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");
    })
    //
  })
})
$(函数(){
$(“#随机”)。在(“单击”,函数(){
var url='1〕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,
键入:“GET”,
数据类型:“json”,
成功:功能(数据、状态、jqXHR){
控制台日志(数据);
$('#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]]版本;
var pageCon=pageContent[Object.keys(pageContent)[0]];
var pageC=pageCon[“*”];
//data.query.pages[Object.keys(data.query.pages)[0]];
$('#result')。前缀(“+pageC+”);
$(“#结果”).prepend(“+pageTitle+”);
//字符串化(数据[2][0][0])
}}
)
.done(函数(){
控制台日志(“成功”);
})
.fail(函数(){
控制台日志(“失败”);
})
.always(函数(){
console.log(“总是成功”);
})
//
})
})

尝试使用$('#result').prepend(“+JSON.stringify(data)+”);另外,数据不是数组
contentType:“application/json;charset=utf-8”,
-您正在发出GET请求。没有描述异步类型的内容。
async:false
-不推荐使用同步请求。不要这样做。在URL返回的数据中,我看不到名为
2
的属性。你期望得到什么?是的,但我给了你最后答案中使用的例子。。。。我说这只是演示如何获取身体数据。。。