如何在没有 cgi 的情况下获得从 python 到 JavaScript 的浮点数
How to get a float from python to JavaScript without cgi
我正在 运行从 Raspberry Pi 连接一个 apache 服务器,并且有一个 python 脚本,returns 传感器通过打印它来输入。这会将其正确打印到控制台。目前我有一个 php 脚本,如果传感器读数很高,它会获取此输出并关闭灯,然后再打印它。这也适用于从控制台 运行 时。最后一部分是 javascript,应该从 php 获得输出。它使用 ajax 执行此操作,其中 运行 是 "success" 函数,但从 php 脚本中获取“0”。
我的 php 脚本:
<?php
exec ("python temp.py", $temp);
if((float)$temp[0]>28)
{
exec("gpio read 0",$state);
if($state[0]=="1")
{
include('gpio.php');
echo("Overheated: ".$temp[0]);
}
}
else
{
echo($temp[0]);
}
?>
我的js:
$.ajax(
{
type: "GET",
url: "temp.php",
dataType: "text",
success: function(msg)
{
alert("asd"+typeof msg);
document.getElementById('text').innerHTML = msg;
return msg;
},
error: function(jqXHR, textStatus, errorThrown){
alert(jqXHR.responseText);
}
});
非常感谢任何建议。谢谢。
没错。这可能是用户权限问题,因为您从终端获得了用户下的输出 运行ning 脚本。浏览器 运行 在服务器用户下设置它,returns 一个空字符串。
从您的服务器 运行ning 脚本时检查 www-data
(或其他)权限。设置错误报告和 运行:
ini_set('display_errors', true);
error_reporting(E_ALL);
echo exec('whoami');
如果它打印出不是 sudoer 的用户,请设置正确的权限以允许该用户执行您的 .py
脚本。
我正在 运行从 Raspberry Pi 连接一个 apache 服务器,并且有一个 python 脚本,returns 传感器通过打印它来输入。这会将其正确打印到控制台。目前我有一个 php 脚本,如果传感器读数很高,它会获取此输出并关闭灯,然后再打印它。这也适用于从控制台 运行 时。最后一部分是 javascript,应该从 php 获得输出。它使用 ajax 执行此操作,其中 运行 是 "success" 函数,但从 php 脚本中获取“0”。
我的 php 脚本:
<?php
exec ("python temp.py", $temp);
if((float)$temp[0]>28)
{
exec("gpio read 0",$state);
if($state[0]=="1")
{
include('gpio.php');
echo("Overheated: ".$temp[0]);
}
}
else
{
echo($temp[0]);
}
?>
我的js:
$.ajax(
{
type: "GET",
url: "temp.php",
dataType: "text",
success: function(msg)
{
alert("asd"+typeof msg);
document.getElementById('text').innerHTML = msg;
return msg;
},
error: function(jqXHR, textStatus, errorThrown){
alert(jqXHR.responseText);
}
});
非常感谢任何建议。谢谢。
没错。这可能是用户权限问题,因为您从终端获得了用户下的输出 运行ning 脚本。浏览器 运行 在服务器用户下设置它,returns 一个空字符串。
从您的服务器 运行ning 脚本时检查 www-data
(或其他)权限。设置错误报告和 运行:
ini_set('display_errors', true);
error_reporting(E_ALL);
echo exec('whoami');
如果它打印出不是 sudoer 的用户,请设置正确的权限以允许该用户执行您的 .py
脚本。