2016-07-09 140 views
1

我不能让下面的代码行返回JSON,甚至运行嵌入式里面我简单的警报()函数的jQuery不返回JSON。我知道URL是正确的,因为当我将它粘贴到浏览器中时,它会返回JSON。有谁知道这里可能是什么问题?尽管得到回通过浏览器

我在CodePen和的jsfiddle想这(确保包括jQuery的)在Chrome,但没有这样的运气。

$.getJSON("https://en.wikipedia.org/w/api.php?action=query&prop=info&format=json&callback=?inprop=url&pageids=18630637" 
, function(data) { 
    alert("success"); 
    console.log(data);   
}); 
+0

你在控制台中的错误信息? –

+1

* XMLHttpRequest的无法加载https://en.wikipedia.org/w/api.php?action=query&prop=info&format=json&callback=?inprop=url&pageids=18630637。请求的资源上没有“Access-Control-Allow-Origin”标题。因此,原产地“https://fiddle.jshell.net”是不允许访问。* –

+1

[百科API +跨域请求(可能的重复http://stackoverflow.com/questions/23952045/wikipedia-api-cross -origin-requests) –

回答

4

你有一个失踪的查询字符串&返回无效JSON。变化:

&callback=?inprop... 

要:

&callback=?&inprop... 

JSFiddle

+0

这个参数是什么? –

+0

你能解释一下/为什么这是可行的?这是一个维基百科特定的修复? –

+0

@ freedomn -m该参数用于使用JSONP而不是JSON。看看[这个SO问题](http://stackoverflow.com/questions/20035101/no-access-control-allow-origin-header-is-present-on-the-requested-resource)和[这个SO问题](http://stackoverflow.com/questions/11916780/changing-getjson-to-jsonp)希望它有助于:) –

0

链接根据http://jsonlint.com/

Error: Parse error on line 1: /**/inpropurl({ "b ^ Expecting 'STRING', 'NUMBER', 'NULL', 'TRUE', 'FALSE', '{', '[', got 'undefined'


/**/inpropurl({"batchcomplete":"","query":{"pages":{"18630637": {"pageid":18630637,"ns":0,"title":"Translation","contentmodel":"wikitext","pagelanguage":"en","pagelanguagehtmlcode":"en","pagelanguagedir":"ltr","touched":"2016-07-08T07:40:24Z","lastrevid":726282436,"length":83042}}}}) 
+0

你确定它有那么多吗? –