来自PHP的Backbone JSON请求麻烦
我在stackoverflow上的第一篇文章.
我正在开发一个系统,它包含客户端 javascript和backbone.js以及highcharts.js,以显示我家可再生能源系统的实时数据. 它使用一个名为Arduino的小型微控制器来处理低水平的传感器数据. 在我的客户端程序中,我使用Backbone作为MVC,模型URL指向Arduino的IP来请求json数据包.效果很好. 我现在正在做的是将URL指针移动到我的托管站点,在那里我有一个小的php文件从SQL表中提取数据并以相同的json格式呈现. 从我的浏览器中,当我从Arduino控制器请求json数据包时,它看起来像这样; <head></head><body><pre>{"vT_pv":234.00,"iT_pv":5.90,"iS_pv":0.00,"vB_pv":27.51}</pre></body> 当我将浏览器指向我调用php的托管网站时,它看起来像这样; <head></head><body><pre>{"vT_pv":230.70,"iT_pv":4.90,"vB_pv":27.56}</pre></body> 编辑:包含Alex要求的完整标题 两者看起来都是一样的,但在我的客户端javascript中只有第一个实际工作在于数据成功地放入模型然后在屏幕上可见. 当我检查页面时,两者之间的一个区别是我的Arduino返回HTTP / 1.0,而我托管站点返回的json数据是HTTP / 1.1 这会导致这样的问题吗? 以下是该json的骨干模型; PollerModel = Backbone.Model.extend({ // url:'//xxx.xxx.xxx.xxx/poller.json',// this one works url: 'http://yyy.yyy.yyy.yyy.host_site/sql_get_live.php',// this one does not startUpdate: function() { var that = this; startUpdate(that); function startUpdate(isThis) { that.fetch({async:false}); pollerUpdateInterval = setTimeout(function(){startUpdate(that);},5000); }; },}); 正如您所看到的,一旦调用了startUpate函数,它将永远每5秒调用一次,这就是我想要的. 当我使用指向微控制器的第一个URL时,它就像一个魅力. 所以在我的客户端应用程序中,第一个URL我在渲染视图上看到了数据,但没有看到第二个URL. 以下是我在主机网站上的php文件; <?php // The JSON standard MIME header. // header('content-type: application/json; charset=utf-8'); $con = mysql_connect('host','username','password'); if (!$con) { die('mysql connect error: ' .mysql_error()); } mysql_select_db("DataBase",$con); $sql_Live = "SELECT * FROM live"; $mysql_record = mysql_query($sql_Live,$con); $row = mysql_fetch_array($mysql_record); $jsonData = '{"vT_pv":' . $row['vT_pv'] . ',"iT_pv":' . "4.90" . ',"iS_pv":' . $row['iS_pv'] . ',"vB_pv":' . $row['vB_pv'] . '}'; echo "<pre >"; echo $jsonData; echo "</pre>"; mysql_close($con); ?> 注释掉的标题对格式或任何结果没有影响. 我搜索过,感觉有点卡在这里,所以我觉得是时候问我了. 保罗 解决方法
我几乎毫无疑问这是标题的问题.
在chrome go:view> developer> developer tools> network tab>然后重新加载并从左侧面板中选择文件,然后查看“标题选项卡”,它将为您提供详细发送或收到的每个http标题,然后您可以计算出2个结果之间的差异. 你的php标题(“content-type”…)应该可以工作,但如果没有,它可能是apache重写你的PHP标题();如果是这样,请更改.htaccess文件中的内容类型,或删除httpd.conf中.php文件的内容类型text / html属性. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |