我在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,即将标头Access-Control-Allow-Origin: *添加到Yun Web服务
JSONP,即如果带有查询参数?callback=?的Ajax调用请求,则让Yun提供其他JS功能


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

08-19 22:50