如何在没有 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 脚本。