使用AJAX / JSON从在线数据API中读取

时间:2016-06-25 04:05:06

标签: javascript jquery html json ajax

很抱歉,如果这是一个愚蠢的问题,我只是很难找到如何做到这一点,而不是耗尽并学习一千万个框架......

我想查询在线数据库(特别是https://data.qld.gov.au/dataset/fireworks/resource/346d58fc-b7c1-4c38-bf4d-c9d5fb43ce7b)。

最终目标是能够在网站上显示此信息。我的第一个想法是在本地创建一个小网站,并采取他们的ajax查询之一,但它不会连接。

查询数据API的最简单方法是什么? (我正在使用HTML / CSS / JS,并且已经开始学习Node.js,JSON数据和AJAX,但我是新手。)

我现在有一个网站,我只是在本地打开(即它的地址是文件:/// C:/Users/Dylan/fireworks/getinfo.html)以及从网站上复制的非常简单的HTML和javascript。但警报始终返回undefined,告诉我它实际上并没有尝试连接。我在这里错过了什么以及为什么?

$(document).ready(function(){
  var data = {
    resource_id: '346d58fc-b7c1-4c38-bf4d-c9d5fb43ce7b', // the resource id
    limit: 5, // get 5 results
    q: 'jones' // query for 'jones'
  };

  console.log("got here");
  $.ajax({
    url: 'https://data.qld.gov.au/api/action/datastore_search',
    data: data,
    dataType: 'jsonp',
    success: function(data) {
      alert('Total results found: ' + data.result.total)
    }
  });

});
<html>
<head>
	<script src = "http://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js"></script>
	<script src = "getinfo.js"></script> 
</head>
<body>
	<h1> I hate myself </h1>
</body>
</html>

我知道这听起来太宽泛了,如果你的答案很广泛,那就没关系。我只是想知道我需要学习什么才能完成从在线数据库中检索信息的简单任务,以及为什么我不能只从我的计算机中查询它?

谢谢!

3 个答案:

答案 0 :(得分:2)

你太近了!!您只是试图从length变量获取计数,但这是一个哈希表/字典而不是数组。尝试通过调用result.records

上的q方法来获取计数

请注意,我删除了$(document).ready(function(){ var data = { resource_id: '346d58fc-b7c1-4c38-bf4d-c9d5fb43ce7b', // the resource id limit: 5, // get 5 results // q: 'jones' // query for 'jones' remove this so we actually get some records }; console.log("got here"); $.ajax({ url: 'https://data.qld.gov.au/api/action/datastore_search', data: data, dataType: 'jsonp', success: function(successData) { alert('Total results found: ' + successData.result.records.length) } }); }); param,以便我们实际获得一些记录

&#13;
&#13;
<html>
<head>
	<script src = "http://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js"></script>
	<script src = "getinfo.js"></script> 
</head>
<body>
	<h1> I am a golden god </h1>
</body>
</html>
&#13;
String line = "AB";
Serial.println();
Serial.print(line);
Serial.println();
char myarray[2];
line.toCharArray(myarray,2);
Serial.print(myarray[0],HEX);
Serial.print(' ');
Serial.print(myarray[1],HEX);
Serial.print(' ');
&#13;
&#13;
&#13;

答案 1 :(得分:0)

你的代码中的每一件事都很好,但你引用了一个错误的变量,只需要console.log(data)来查看数据对象包含的属性或方法。

&#13;
&#13;
$(document).ready(function(){
  var data = {
    resource_id: '346d58fc-b7c1-4c38-bf4d-c9d5fb43ce7b', // the resource id
    limit: 5, // get 5 results
    q: 'jones' // query for 'jones'
  };

  console.log("got here");
  $.ajax({
    url: 'https://data.qld.gov.au/api/action/datastore_search',
    data: data,
    dataType: 'jsonp',
    success: function(data) {
      console.log(data);

      // alert('Total results found: ' + data.result.total)
    }
  });

});
&#13;
<html>
<head>
	<script src = "http://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js"></script>
	<script src = "getinfo.js"></script> 
</head>
<body>
	<h1> I hate myself </h1>
</body>
</html>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

我无法加载网址,它返回了一个http 408/409错误。所以我无法告诉你错误的原因,以及如何调试错误。

下次找到这个,第1步,打开浏览器的调试器;第2步,检查&#34;网络&#34;选项卡如果连接失败并观察错误消息;第3步,console.log(data),它将数据结构显示到控制台中,在很多情况下,undefined来自于错误使用数据结构。最后,不要讨厌自己并寻求帮助。