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

Wikipedia API. File not found Error

我正在尝试制作维基百科搜索栏。这个想法是每次更改搜索输入时发送一个新的 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" pressed):

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

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

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

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

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

只需替换:

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

与:

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

看起来您是 运行从文件系统中的一个简单 html 文件获取它,换句话说,不是从网络服务器(甚至本地)运行获取它.

尝试用

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

或运行来自网络服务器的文件(可以是本地服务器)。