Tag: wikipedia api

没有值的MediaWiki URL参数

URL的query部分似乎由以&分隔的键值对组成,并由=关联。 我总是使用jQuery的$.param()函数来对我的查询字符串进行URL编码,因为我发现它使我的代码更具可读性和可维护性。 在过去的几天里,我发现自己正在调用MediaWiki API,但在使用硬编码URL清理我的工作原型以使用$.param()我注意到一些MediaWiki API包含带键而不是值的查询参数! api.php ? action=query & titles=Main%20page & redirects 注意部分&redirects ,它没有任何价值。 jQuery的$.param()接受一个对象,因为对象只包含键值对,所以不可能传递一个成员有一个键但没有值的对象。 这很好,所以我假设我可以传递一些值,如null或undefined或0但似乎所有这些都被视为相似。 我发现这令人惊讶,我无法在MediaWiki API文档中发现有关此背后的原因的任何内容。 好吧,通过手动构建URL字符串可以很容易地解决这个问题。 我的问题是“这是MediaWiki API中的一个怪癖吗?或者是URL编码设计中的一个怪癖?我应该阅读哪些内容来理解没有相关值的URL编码参数背后的原因?

如何通过API获取简短的文本片段和维基百科文章的主要图像?

我正在尝试创建一个维基百科的简单克隆,允许用户搜索主题,然后显示10个包含文章图像和一小段文本的结果。 我已经能够将用户提供的搜索字段传递给我的.ajax()调用,没有任何问题。 但是现在我无法检索图像,我已经阅读了有关此问题的StackOverflow上的所有其他post,但没有成功。 $(document).ready(function() { var input = $(‘input’); var button = $(‘button’); //Create varialbe to store search field var toSearch = ”; //Api data: var searchUrl = ‘https://en.wikipedia.org/w/api.php’; //.ajax() to get articles var ajaxArticle = function() { $.ajax({ url: searchUrl, dataType: ‘jsonp’, data: { action: ‘query’, format: ‘json’, prop: ‘extracts’, exchars: ‘200’, exlimit: ‘max’, […]

MediaWiki API没有使用jQuery的响应

我试图从维基百科获取一些内容作为JSON: $.getJSON(“http://en.wikipedia.org/w/api.php?action=query&prop=revisions&rvprop=content&titles=”+title+”&format=json”, function(data) { doSomethingWith(data); }); 但我没有得到任何回应。 如果我粘贴到浏览器的地址栏,就像是 http://en.wikipedia.org/w/api.php?action=query&prop=revisions&rvprop=content&titles=jQuery&format=json 我得到了预期的内容。 怎么了?

Wikipedia API是否支持CORS或仅支持JSONP?

这个问题与一年前提出的另一个问题有关。 作者询问如何使用JavaScript和Wikipedia API发出cros-origin请求,其中一条评论是: en.wikipedia.org似乎不允许使用CORS 并建议他改用JSONP。 我知道我可以使用JSONP,但如果我可以使用它,我更喜欢CORS。 我试过jsfiddle var url = “https://en.wikipedia.org/w/api.php?action=query&titles=Main%20Page&prop=revisions&rvprop=content&format=json”; $.ajax({ url: url, data: ‘query’, dataType: ‘json’, type: ‘POST’, headers: { ‘Api-User-Agent’: ‘Example/1.0’ }, origin: ‘https://jsfiddle.net/’, success: function (data) { console.log(data); //do something with data }}); 并得到以下错误: XMLHttpRequest无法加载https://en.wikipedia.org/w/api.php?action=query&titles=Main%20Page&prop=revisions&rvprop=content&format=json 。 对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。 因此,不允许来源“ https://fiddle.jshell.net ”访问。 请求标题: authority:en.wikipedia.org method:OPTIONS path:/w/api.php?action=query&titles=Main%20Page&prop=revisions&rvprop=content&format=json scheme:https accept:/ accept-encoding:gzip, deflate, sdch accept-language:en-US,en;q=0.8,fr-CA;q=0.6,fr;q=0.4,fr-FR;q=0.2,ru;q=0.2,uk;q=0.2 access-control-request-headers:accept, […]