我正在尝试制作维基百科搜索栏。想法是每次更改搜索输入时发送新的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
提前感谢您的任何帮助或指导!
答案 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服务器(甚至是本地服务器)运行它。
尝试使用
调用apiurl: 'https://en.wikipedia.org/w/api.php'
或从Web服务器运行该文件(可以是本地文件)。