2017-01-14 3 views
0

Я пытаюсь создать панель поиска по википедии. Идея состоит в том, чтобы отправлять новый запрос AJAX каждый раз при изменении ввода поиска. Я использую https://www.mediawiki.org/wiki/API:Search_and_discovery в качестве ориентира.Wikipedia API. Файл не найден Ошибка

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 файл: //en.wikipedia.org/w/api.php ?> Обратный вызов = jQuery21107844703783826772_1484403407494 & действие = запрос & список = поиск & srse> арка = d формат & = & JSON _ = 1484403407495 нетто :: ERR_FILE_NOT_FOUND

Спасибо заранее за любую помощь или руководство!

ответ

0

Ну, вы, вероятно, пытаетесь выполнить запрос 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', 
+0

Вы правы - сменили на «https» исправленное и да, я запускал его локально. Спасибо. – Augustinas

0

Похоже, вы используете его из простого HTML-файла, расположенного в вашей файловой системе, другими словами, не запустив его с веб-сервера (даже локальный).

Попробуйте позвонить АНИ с

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

или запустить файл с веб-сервера (может быть локальным).

+0

Вы правы - меняли на «https», фиксировали его и да, я запускал его локально. Спасибо. – Augustinas

Смежные вопросы