【发布时间】:2018-08-13 21:09:08
【问题描述】:
编辑: 这解决了。感谢所有将我指向错误日志文件的人。令人惊叹的社区,得到的答复比我预期的要快得多。 我不好意思说……那是一个分号。
作为一个研究项目,我正在研究基于 Raspberry Pi 的家庭自动化。
我安装了 Apache 并构建了一个用作 GUI 的小型网站。单击时,数据将通过 POST 请求发送到ajax.php(在根文件夹中),然后将内容写入文本文件(然后由 python 脚本读取以使用 GPIO 执行操作 - 不是很优雅,但是这就是现在的任务)。
一些相关代码:
$("#R0Light1_on").click(function(){
var Value = $(this).val();
var data = {'id': 'R0Light1_on', 'value': Value};
$.ajax({
type: 'POST',
url: 'ajax.php',
data: data,
success: function(){
console.log("#R0Light1_on", data);
$("#R0Light1_on").addClass("on");
$("#R0Light1_off").removeClass("off");
},
error: function() {alert('ERROR: $.ajax #R0Light1_on');}
});
});
<?php
if (isset($_POST['id'])) {
switch ($_POST['id']){
case 'R0Light1_on':
R0Light1_on();
break;
case 'R0Light1_off':
R0Light1_off();
break;
}
}
function R0Light1_on() {
$content = "Not relevant to this Question";
$fp = fopen("/var/www/html/shares/pi/R0Light1_on.txt","wb");
fwrite($fp,$content);
fclose($fp);
exit;
}
function R0Light1_off() {
...
}
?>
<button type="button" id="R0Light1_on" value="1">an</button>
AJAX 工作了一个月。 200 ok,一直以来,$_POST['id'] 都做到了。然后昨天,它停止了这样做。我不知道我做了什么,但现在它正在向我抛出 500 Internal Server Error 消息。即使使用备份文件也无济于事,我觉得我已经阅读了 Google 可以找到的所有内容。
不过,我知道一件事:当我删除 if(isset($_POST['id']))-part 时,HTTP 请求再次成功(这也使 php 脚本毫无用处,很明显)。
顺便说一句,将所有内容更改为 GET 也无济于事(数据在 URL 中可见,但错误保持不变)。
感谢您抽出宝贵时间,非常感谢您提供任何帮助。
【问题讨论】:
-
检查您的错误日志。他们会告诉你问题出在哪里。
标签: javascript php jquery ajax post