我想调用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}
答案 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>