javascript中的MediaWiki api JSON解析错误
我使用javascript访问media wiki api并返回JSON,但在解析/访问返回的数据并将datastr变量插入现有div时,我收到未定义的消息。以下是我的脚本代码:javascript中的MediaWiki api JSON解析错误,javascript,jquery,json,mediawiki-api,Javascript,Jquery,Json,Mediawiki Api,我使用javascript访问media wiki api并返回JSON,但在解析/访问返回的数据并将datastr变量插入现有div时,我收到未定义的消息。以下是我的脚本代码: $.getJSON("http://bulbapedia.bulbagarden.net/w/api.php?action=parse&format=json&page=Bulbasaur_%28Pok%C3%A9mon%29&prop=images", function(data) {
$.getJSON("http://bulbapedia.bulbagarden.net/w/api.php?action=parse&format=json&page=Bulbasaur_%28Pok%C3%A9mon%29&prop=images", function(data) {
var datax = $.parseJSON(data);
var datastr = datax.images[2];
console.log(datastr); //prints nothing to the web console
});
我相信链接本身工作正常,返回一个JSON:
这可能是我访问API的方式有问题,或者只是接收/解析JSON有问题。谢谢
**将datax.images[2]更改为datax.parse.images[2]将返回相同的未定义值。Change
var datastr = datax.images[2];
致:
更新:似乎您有交叉来源的问题,它没有提出请求。这应该起作用:
$.ajax({
dataType: "jsonp",
url: "http://bulbapedia.bulbagarden.net/w/api.php?action=parse&format=json&page=Bulbasaur_%28Pok%C3%A9mon%29&prop=images",
success: success
});
function success(datax){
var datastr = datax.parse.images[2];
console.log(datastr); //prints 001Bulbasaur.png
}
Fiddle:执行此操作后,我仍然会收到未定义的。这会打印到控制台,解决了一个问题,但当我尝试将其插入HTML时,它仍然会生成未定义的:。这可能是一个与问题不同的问题。@pran ajax是一个异步过程,因此您需要将'document.getElementById(“div”).innerHTML=datastr;'成功函数内部
$.ajax({
dataType: "jsonp",
url: "http://bulbapedia.bulbagarden.net/w/api.php?action=parse&format=json&page=Bulbasaur_%28Pok%C3%A9mon%29&prop=images",
success: success
});
function success(datax){
var datastr = datax.parse.images[2];
console.log(datastr); //prints 001Bulbasaur.png
}