2014-07-24 37 views
-1

我在stackoverflow中找到了一個答案,它從維基百科提供的url中檢索信息框。從維基百科獲取信息框信息

var url="http://en.wikipedia.org/w/api.php?action=parse&format=json&page=" + interests[index].name + "&redirects&prop=text&callback=?"; 
var html = ""; 

$.getJSON(url,function(data){ 
    wikiHTML = data.parse.text["*"]; 
    $wikiDOM = $("<document>"+wikiHTML+"</document>"); 
    result_html += '<p>' + $wikiDOM.find('.infobox').html() + '</p>'; 
}); 

但我得到以下錯誤:

Uncaught TypeError: Cannot read property 'text' of undefined 

URL是有效的,雖然搜索關鍵詞中有空格。例如:

全金屬煉金術士將是的利益[index] .name

+0

我想你會在這裏遇到一個大問題,因爲你是從你的腳本調用第三方網站 - 這是一個安全違規(搜索跨站點腳本的更多信息)。你應該做的是爲你的網站編寫一個服務器端腳本,它將從維基百科獲取你所需要的信息,並調用你的頁面(它將用JavaScript託管在同一個站點上)。 – developer82

+0

但如果我打印$ wikiDOM.find('。infobox')。html()。它返回的東西和我得到的錯誤不是那一個。儘管我承認它可能會發生。但我認爲在這種情況下,維基百科服務使用jsonP,它可以讓我做到這一點,沒有這個問題。 –

+1

你的代碼[** works !! **](http://jsfiddle.net/28Np5/) – mithunsatheesh

回答

0

從我意識到的是,我的一些興趣沒有維基百科頁面,爲此我沒有得到任何迴應。

+0

不完全正確。問題在於你不是在搜索主題,而是在請求中對頁面標題進行了硬編碼。您需要[opensearch API](https://www.mediawiki.org/wiki/API:Opensearch)。 – Nemo

相關問題