javascript - 如何从 yaler 获取 json 响应

标签 javascript ajax json arduino-yun

我在 yaler 上创建了一个帐户,以与我的 arduino yun 进行通信。它工作正常,我可以打开和关闭 LED 灯。 然后我创建了一个网页,其中有一个按钮可以通过 GET 方法调用 ajax 函数到 yaler(yaler Web 服务器接受 URL 上的 REST 样式)

$.ajax({
   url: "http://RELAY_DOMAIN.try.yaler.net/arduino/digital/13/1",
   dataType: "json",
   success: function(msg){
      var jsonStr = msg;
    },
   error: function(err){
       alert(err.responseText);
   }

});

这段代码似乎工作正常,事实上 LED 会关闭和打开,但我期望成功函数(msg)中有一个 json 响应,如下所示:

{
"command":"digital",
"pin":13,
"value":1,
"action":"write"
}

但是我收到错误(错误函数)。我也尝试提醒 err.responseText,但它是未定义的....

我该如何解决这个问题?有什么建议么??? 提前致谢....

最佳答案

如果包含上述 Ajax 请求的网页是从不同的源提供的,则您必须解决 Web 浏览器的同源策略。

有两种方法可以做到这一点(基于 http://forum.arduino.cc/index.php?topic=304804 ):

  • CORS ,即将 header Access-Control-Allow-Origin: * 添加到 Yun Web 服务
  • JSONP ,即如果 Ajax 调用通过查询参数 ?callback=?
  • 请求,则让 Yun 提供额外的 JS 函数

CORS 可能可以在 Yun 的 OpenWRT 部分中配置,而 JSONP 可以添加到 Brige.ino 代码(您似乎正在使用)中。

关于javascript - 如何从 yaler 获取 json 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28777641/

相关文章:

javascript - 当我使用 .html() 函数时,jQuery 1.3.2 在 IE 上添加了 sizset ='' sizcache ='' 属性

javascript - 迭代完成后使用 Promise

javascript - coin-slider js gallery,想添加淡入淡出效果

jquery - 使用 AJAX 的数据表分页

jquery - 如何在asp.net MVC 4中通过ajax请求下载文件

java - 在 Java 中清理 JSON 字符串值

javascript - 无法在 MooTools 中以编程方式触发 mouseenter

javascript - 如何使用ajax显示JSON

javascript - 为什么此代码会发出警报 "undefined"

jquery - 如何让 .getJson 成功