我想从维基百科页面中获取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>然而,这似乎不起作用。最终,我也希望能够将获取的wikitext保存到一个变量中,因此对此的任何帮助也将不胜感激。
发布于 2011-03-31 23:23:38
它是跨域的,所以它不能工作...创建一个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或原始文本。
发布于 2011-04-01 00:10:20
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 (关于JSONP限制的this remark )、working example和维基百科上关于same-origin policy和JSONP的文章,以了解您的第一种方法为什么不起作用。
您可以通过将'json‘替换为’jsonfm‘来研究接口结果的格式:http://en.wikipedia.org/w/api.php?action=query&prop=revisions&rvprop=content&format=jsonfm&titles=Dog
https://stackoverflow.com/questions/5501822
复制相似问题