2016-07-09 54 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

你確定它有那麼多嗎? –