从API记录响应

时间:2016-01-14 21:27:28

标签: javascript html

所以,我已经制作了这个代码,用于扫描维基百科的API,然后使用console.log编写API中的所有信息。但是,它没有返回任何东西。

function display() {
  $.get('https://en.wikipedia.org/w/api.php?format=json&action=query&prop=extracts&exintro=&explaintext=&titles=Stack%20Overflow', function(Data){
    var elements = document.querySelectorAll( 'body *' );
    console.log(elements[0].innerHTML);
    console.log('ya');
  });
}

display();

变量元素应该获取它刚刚获取的API主体内的所有元素,然后在之后的console.log语句应该记录第一个元素的innerHTML。 但是,它没有记录任何内容。

2 个答案:

答案 0 :(得分:0)

因此代码存在许多问题:
1.您正在查询文档,但您的数据保存在Data变量中。尝试注销Data变量。
2.当我尝试GET时,GET未正确形成以允许跨浏览器请求。以下代码对我有用:


    function display(){
        $.ajax({
            type: "GET",
            url: "https://en.wikipedia.org/w/api.php?format=json&action=query&prop=extracts&exintro=&explaintext=&titles=Stack%20Overflow&callback=?",
            contentType: "application/json; charset=utf-8",
            async: true,
            dataType: "json",
            success: function (data, textStatus, jqXHR) {
                console.log(data);
            },
            error: function (errorMessage) {
            }
        });
    }

    display();

注意:我必须在原始搜索网址中添加一个回调参数。

我使用以下博客作为参考: http://www.9bitstudios.com/2014/03/getting-data-from-the-wikipedia-api-using-jquery/

此处显示的查询返回数据对象,而不是HTML字符串。因此,使用查询选择器是不合适的。

答案 1 :(得分:0)

您没有将元素设置为正确的东西,请尝试:

foreach ($arrayB as &$ar)
   foreach ($ar as $k => &$v)
      if (isset($arrayA[$k]) 
          $v = ($v == $arrayA[$k] ? 1 :0);