如何在jQuery Ajax中调用Thingspeak API

时间:2018-07-22 18:50:04

标签: javascript jquery ajax api

我想调用Thingspeak Rest API,并希望在HTML页面中显示该值。我得到的值是不确定的。

代码

<script type="text/javascript">
    $(document).ready(function() {

     var response;
    $.ajax({
      url: 'https://api.thingspeak.com/channels/channelid/fields/field1/last?api_key=key',
      type: 'GET',
      data: {
        format: 'json'
      },
      success: function(response) {
      response = response.field1;
      },
      error: function() {
        $('#errors').text("There was an error processing your request. Please try again.");
      }
    });

    document.getElementById("field1").innerHTML=response;
});
    </script>

api响应数据

{response = {created_at: "2018-03-28T09:36:48Z", entry_id: 2476, field1: "0}

3 个答案:

答案 0 :(得分:2)

在遵循API文档(https://www.mathworks.com/help/thingspeak/readlastfieldentry.html)之后,我找到了响应,如果您想获取文本结果,则应修复方法。新方法应如下所示:

$(document).ready(function() {
    $.ajax({
      url: 'https://api.thingspeak.com/channels/147878/fields/field1/last.txt?api_key=S4O9F5QP5QC',
      type: 'GET',
      data: {
        format: 'text'
      },
      success: function(response) {
        alert(response);
      },
      error: function() {
        $('#errors').text("There was an error processing your request. Please try again.");
      }
    });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

答案 1 :(得分:1)

如果您认为您使用的是正确的api(如您在提到的api响应数据中看到的那样),则没有“文本”键,因此当您尝试访问response.text时,您将无法定义 如果要将响应转换为字符串格式,则应使用JSON.stringify(response)

答案 2 :(得分:1)

 <script type="text/javascript">
    $(document).ready(function() {
    $.ajax({
      url: 'https://api.thingspeak.com/channels/channelid/fields/field1/last?api_key=ur_app_key',
      type: 'GET',
      data: {
        format: 'json'
      },
      success: function(response) {
      $("#field1").text(response.field1);
      },
      error: function() {
        $('#errors').text("There was an error processing your request. Please try again.");
      }
    });
});
    </script>