我想从Wikipedia页面获取WikiText并使用Javascript在浏览器中显示它。以下是我目前的情况:
<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-1.5.js"></script>
</head>
<body>
<div id="wikiInfo"> </div>
<script>
$.get('http://en.wikipedia.org/w/index.php?action=raw&title=Dog&callback=?',
function(data) {
$("div").add(data);
alert('load performed');
});
</script>
</body>
</html>
但是,这似乎不起作用。最后,我希望能够将获取的wiki文本保存到变量中,因此对此也有任何帮助。
答案 0 :(得分:3)
它是跨域的,所以它不起作用...制作一个wiki.php并用JS获取“wiki.php?title = Dog”...
function curl($url){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_close ($ch);
return curl_exec($ch);
}
$title = $_GET["title"];
echo curl("http://en.wikipedia.org/w/api.php?action=query&prop=revisions&rvprop=content&format=json&callback=?&titles=$title");
使用@Tgr WikiPedia链接编辑。我还建议在PHP中解析JSON,然后输出HTML或原始文本。
答案 1 :(得分:2)
action=raw
不接受JSONP回调参数。你应该进行适当的API调用:
$.getJSON('http://en.wikipedia.org/w/api.php?'+
'action=query&prop=revisions&rvprop=content'+
'&format=json&callback=?&titles=Dog',
function(result) { /* process JSON result */ });
请参阅API documentation(this remark关于JSONP限制),working example以及关于same-origin policy和JSONP的维基百科文章,了解您的第一个方法为什么没有不行。
您可以将'json'替换为'jsonfm'来研究API结果的格式:http://en.wikipedia.org/w/api.php?action=query&prop=revisions&rvprop=content&format=jsonfm&titles=Dog