我在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代码(您似乎正在使用)中。