【问题标题】:Wikipedia API. File not found Error维基百科 API。找不到文件错误
【发布时间】:2017-01-14 23:01:31
【问题描述】:

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

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

【问题讨论】:

    标签: javascript jquery ajax wikipedia-api


    【解决方案1】:

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

    首先,您的url 选项以//en... 开头(没有协议)。它表明它将使用您正在使用的相同协议构建您的完整网址。在这种情况下: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',
    

    【讨论】:

    • 你是对的 - 更改为“https”修复了它,是的,我在本地运行它。谢谢。
    【解决方案2】:

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

    尝试调用 api

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

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

    【讨论】:

    • 你是对的 - 更改为“https”修复了它,是的,我在本地运行它。谢谢。
    猜你喜欢
    • 2018-05-27
    • 2017-07-06
    • 1970-01-01
    • 2014-11-14
    • 2010-10-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多