2016-08-13 64 views
1

我使用了Wiki API文档中的一些示例代码,但是当我输入搜索项目时,什么都不会发生。没有控制台中的错误,只是没有。如果我将它输入到浏览器中,URL本身就能正常工作,所以我认为代码的某些内容没有传递正确的值。我是如何调用API的?下面是相关代码:Wiki API请求不起作用

$(document).ready(function(){ 
    $('#search-submit').click(function() { 
     getWiki($('#searchVal').val()); 
    }); 
    /*add code for get lucky function*/ 
}); 

function getWiki(searchParam) { 
    $.ajax({ 
    url: 'http://en.wikipedia.org/w/api.php?action=parse&format=json&prop=text&section=0&page='+searchParam+'&callback=?', 
    dataType: 'json', 
    type: 'POST', 
    headers: { 'Api-User-Agent': 'Example/1.0' }, 
    success: function(data) { 
     var result = data; 
     pageTitle = result.title; 
     $(".search-box").html(pageTitle); 
    } 
}); 
}; 

这里是HTML:

<body> 
    <div class="container"> 
    <div class="col-lg-12 header"> 
    <h1>Search Wiki</h1> 
    </div> 
    <div class="row search-box"> 
     <div class="col-lg-10"> 
    <input placeholder=" Search" class="input" type="text" id="searchVal" name="searchVal"/></div> 
     <div class="col-lg-2"><button type="submit" id="search-submit" name="search-submit" class="btn-default"> 
    <i class="fa fa-search fa-2x"></i> 
</button></div> 
    </div> 
    <div class="row button-box text-center"> 
     <div class="col-lg-12"> 
     <button type="button" class="btn btn-primary" id="random">I'm Feeling Lucky</button></div> 
    </div> 
    </div> 
</body> 

回答

1

返回JSON有结果前一个parse属性,因此它必须是data.parse.title拿到冠军等

$(document).ready(function() { 
 
    $('#search-submit').click(function() { 
 
     getWiki($('#searchVal').val()); 
 
    }); 
 
    /*add code for get lucky function*/ 
 
}); 
 

 
function getWiki(searchParam) { 
 
    $.ajax({ 
 
     url: 'http://en.wikipedia.org/w/api.php?action=parse&format=json&prop=text&section=0&page=' + searchParam + '&callback=?', 
 
     dataType: 'json', 
 
     type: 'POST', 
 
     headers: { 
 
      'Api-User-Agent': 'Example/1.0' 
 
     }, 
 
     success: function(data) { 
 
      var result = data.parse; 
 
      var pageTitle = result.title; 
 
      $(".search-box").html('The title is : ' + pageTitle); 
 
     } 
 
    }); 
 
};
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
Search for something : <input id="searchVal"><button id="search-submit">Search</button> 
 
<br /><br /><br /> 
 
<div class="search-box"></div>

+0

杜......数字我忘记了那么简单的事情。谢谢你,先生 – Andy