2016-01-10 3 views
2

Я возился с API-интерфейсом wikipedia, но я продолжаю получать ошибку;Невозможно прочитать свойство «поиск» неопределенного (API Википедии)

«Не удается прочитать свойство„поиск“неопределенных»

Может кто-нибудь объяснить, что я делаю неправильно? Когда пользователь использует панель поиска, чтобы попытаться найти что-то, я буду использовать .map, чтобы просмотреть данные и вставить результаты данных в свой результатDiv.

Это мой код; & обязательный код. http://codepen.io/pixeluh/pen/wMdpbM?editors=101

$(document).ready(function() { 
 

 
    var searchBar = $("#search"); 
 
    var resultDiv = $(".results"); 
 
    var goButton = $("#go"); 
 

 
    $.ajax({ 
 
    url: "http://en.wikipedia.org/w/api.php?", 
 
    data: { 
 
     action: 'query', 
 
     list: 'search', 
 
     srsearch: searchBar.val(), 
 
     format: 'json' 
 
    }, //end of data 
 
    dataType: 'jsonp', 
 
    success: function(data){ 
 
     var datatp = ''; 
 
     data.query.search.map(function(f) { 
 
      datatp += f.title; 
 
      datatp += f.snippet; 
 
      }) //end of map 
 
     resultDiv.html(datatp); 
 
     } //end of success 
 
    }); //end of ajax 
 

 
}); //end of body func
<html> 
 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<container id="page"> 
 
    
 
    <div id="flex-container"> 
 
    <div class="search-bar"> 
 
    <form class="searchbar"> 
 
     <input type="search" name="wikisearch" placeholder="Search wiki..." id="search"> 
 
     <input type="submit" id="go" value="Go"/> 
 
     
 
     <input type="button" id="random" value="Random" onclick="window.location ='http://en.wikipedia.org/wiki/Special:Random';"/> 
 
     
 
    </form> 
 
    
 
    </div> 
 
    </div> 
 
    
 
    <div class="results"> 
 
    <!-- search results go here--> 
 
    </div> 
 
    
 
</container> 
 
</html>

Любая помощь или руководство оценили, спасибо.

+0

'data.query.search.map (функция (е) {' данных. запрос не определен, и вы пытаетесь ссылаться на его свойство поиска. Почему это не определено? Данные, которые вы получили, выглядят не так, как вы ожидаете. Посмотрите на ответ, который вы получаете от своего аякс-вызова (вкладка сети в браузере dev инструменты) и выяснить, что пошло не так. – James

ответ

0

Вы звоните Аякса на готов, но это должно быть представить так:

JSFIDDLE

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