为什么维基百科ajax电话无效

时间:2017-07-16 17:23:15

标签: javascript json



var url = 'http://en.wikipedia.org/w/api.php?action=opensearch&format=json&limit=15&search=' + search;
var ourRequest = new XMLHttpRequest();

ourRequest.open('GET', url);

ourRequest.onload = function() {
  var data = JSON.parse(ourRequest.responseText);
  console.log(data);
};
ourRequest.send();




有人可以告诉我为什么我无法在控制台中获取解析数据。

2 个答案:

答案 0 :(得分:0)

好吧,我使用以下代码。

$.ajax({
url: url,
jsonp: "callback",
dataType: "jsonp",
success: function(data) {
  console.log(data);
 }
 });

答案 1 :(得分:0)

您需要在url变量中再添加一个参数才能使此请求生效 - 的原点= * 即可。添加它,您的代码就可以了。

检查我是如何更改url变量的。 Wikipedia API要求请求源包含在参数字符串中。



document.getElementById('do-search').addEventListener('click', search);

function search(){
  var search = document.getElementById('search').value;
  var url='http://en.wikipedia.org/w/api.php?action=opensearch&format=json&limit=15&origin=*&search='+search;
  var ourRequest = new XMLHttpRequest();

  ourRequest.open('GET', url);

  ourRequest.onload = function() {
    var data = JSON.parse(ourRequest.responseText);
    document.getElementById('results').innerHTML = data;
  };
  ourRequest.send();
}

<input id="search" type="text">

<button id="do-search">Search</button>

<div id="results"></div>
&#13;
&#13;
&#13;