维基百科API。找不到文件错误

时间:2017-01-14 14:50:23

标签: javascript jquery ajax wikipedia-api

我正在尝试制作维基百科搜索栏。想法是每次更改搜索输入时发送新的AJAX请求。我使用https://www.mediawiki.org/wiki/API:Search_and_discovery作为指导。

var search = $('#search');

search.keyup(function() {
  if (search.val() === '') {
    result.html('');
  }

  $.ajax({
    url: '//en.wikipedia.org/w/api.php',
    data: {
      action: 'query',
      list: 'search',
      format: 'json',
      srsearch: search.val()
    },
    dataType: 'jsonp',
    success: function(response) {
      console.log("success!");
    }
  });
});

但是,甚至没有触发成功功能。 在任何按键上我得到的错误是这个(“d”按下):

  

jquery-2.1.1.min.js:4 GET file://en.wikipedia.org/w/api.php?> callback = jQuery21107844703783826772_1484403407494& action = query& list = search& srse> arch = d& ; format = json& _ = 1484403407495 net :: ERR_FILE_NOT_FOUND

提前感谢您的任何帮助或指导!

2 个答案:

答案 0 :(得分:1)

嗯,您可能在没有本地服务器的情况下尝试执行AJAX请求(直接在浏览器中打开文件)。

首先,您的url选项以//en...开头(没有协议)。它表示它将使用您正在使用的相同协议构建您的完整URL。在这种情况下:file://。那是因为您的浏览器正在尝试访问file://en.wikipedia.org/...

因此,您可以将自己的网址设置为https://en.wikipedia.org/w/api.php以使其正常工作。

只需替换:

url: '//en.wikipedia.org/w/api.php',

使用:

url: 'https://en.wikipedia.org/w/api.php',

答案 1 :(得分:0)

看起来你是从一个位于文件系统中的简单html文件中运行它,换句话说就是没有从web服务器(甚至是本地服务器)运行它。

尝试使用

调用api
url: 'https://en.wikipedia.org/w/api.php'

或从Web服务器运行该文件(可以是本地文件)。