我已经尝试了我在这里和维基媒体API网站上找到的所有组合,但我似乎无法获得任何返回的数据。这是我的代码,
$('#go').click(function () {
var str = $("#input").val();
var fullstr = 'https://en.wikipedia.org/w/api.php?format=json&action=query&list=search&srnamespace=0&srsearch=' + str + '&srprop=snippet&format=json&callback=json';
$.getJSON(fullstr, function(data) {
alert(data);
});
});
我已经对它进行了测试,直到getJSON调用它似乎正在工作,但我似乎没有从调用中得到任何东西。 (最后的alert()只是检查是否有任何返回的对象。)
有什么问题?
谢谢!
答案 0 :(得分:1)
您必须在请求中添加 origin = * 参数,以防止交叉来源错误。像这样:
https://en.wikipedia.org/w/api.php?action=query&list=search&srnamespace=0&srsearch=' + str + '&srprop=snippet&format=json&callback=json&origin=*
答案 1 :(得分:1)
它可能会对您有所帮助,同时构建您需要传递的网址 origin = *
$(document).ready(function(){
$("#searchWiki").click(function(){
var q = document.getElementById("searchid").value;
$.getJSON("https://en.wikipedia.org/w/api.php?action=query&format=json&gsrlimit=15&generator=search&origin=*&gsrsearch=" + q, function(data){
console.log(data)
});
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<div id="search">
<input id="searchid" class="input-lg" name="gsrsearch" type="text" placeholder="search Wiki" autocomplete="off"/>
<button id="searchWiki" class="btn-lg btn-info">Search</button>
</div>