使用jQuery通过IP/device.JSON从本地网络上的硬件获取JSON
我在从本地网络上的硬件获取json时遇到问题 我可以在浏览器中使用此地址查看json代码: 我还将生成的文本保存到文件device.json中,并将其放置在与test.php文件相同的目录中 此代码适用于:使用jQuery通过IP/device.JSON从本地网络上的硬件获取JSON,jquery,json,Jquery,Json,我在从本地网络上的硬件获取json时遇到问题 我可以在浏览器中使用此地址查看json代码: 我还将生成的文本保存到文件device.json中,并将其放置在与test.php文件相同的目录中 此代码适用于: $.getJSON('device.json',function(data) { $.each(data.mainunit.sensors, function(i, sensor) { $("#results").append('<p>'+s
$.getJSON('device.json',function(data) {
$.each(data.mainunit.sensors, function(i, sensor) {
$("#results").append('<p>'+sensor.name+' = '+sensor.tc+'</p>');
});
$.getJSON('device.json',函数(数据){
$。每个(data.mainunit.sensors,功能(i,传感器){
$(“#结果”).append(“”+sensor.name+”=“+sensor.tc+””);
});
这不起作用:(将device.json更改为)
$.getJSON('http://192.168.1.103/device.json,函数(数据){
$。每个(data.mainunit.sensors,功能(i,传感器){
$(“#结果”).append(“”+sensor.name+”=“+sensor.tc+””);
});
我猜代码无法在IP地址查看JSON文件
提前感谢。可能违反了同一原产地政策: 由于浏览器的安全限制,大多数“Ajax”请求都遵循同一源策略;该请求无法成功地从不同的域、子域或协议检索数据
在本页的“附加说明”下:您应该使用一些回调函数包装JSON。如果您的
设备.JSON
如下所示:
{ "a" : true, "b" : false }
将其修改为兼容:
my_wrapper() { { "a" : true, "b" : false } }
如何申请:
$.ajax({
url: "http://192.168.1.103/device.json",
type: "GET",
dataType: "jsonp",
jsonpCallback: "my_wrapper",
success: function(data) {
//Handle data
}
}
未测试代码。可能的解决方案:
访问控制允许来源:
标题()最后一个问题是,你可以马上做。这东西怎么会在无声中失败,真是令人恼火。Firebug有一个“Net”选项卡,可以显示ajax请求的http头和响应,这可能会给你一些线索。你可以通过web服务器代理请求,或者使用mod_proxy,或者如果请求量很小(我怀疑是这样的话)您可以编写一个服务器端脚本来接收json请求,点击设备(例如使用curl)然后通过管道输出响应。这可以通过ScriptTagProxy解决吗?如果可以,我是否有JSON的读/写权限?谢谢,我必须联系设备制造商,看看他们是否可以添加。谢谢。制造商正在发布一个补丁来提供JSONP。感谢请求示例。
$.ajax({
url: "http://192.168.1.103/device.json",
type: "GET",
dataType: "jsonp",
jsonpCallback: "my_wrapper",
success: function(data) {
//Handle data
}
}