【问题标题】:Error 500, AJAX to PHP using $_POST [duplicate]错误 500,AJAX 到 PHP 使用 $_POST [重复]
【发布时间】: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() {
...
}


?>
&lt;button type="button" id="R0Light1_on"  value="1"&gt;an&lt;/button&gt;

AJAX 工作了一个月。 200 ok,一直以来,$_POST['id'] 都做到了。然后昨天,它停止了这样做。我不知道我做了什么,但现在它正在向我抛出 500 Internal Server Error 消息。即使使用备份文件也无济于事,我觉得我已经阅读了 Google 可以找到的所有内容。

不过,我知道一件事:当我删除 if(isset($_POST['id']))-part 时,HTTP 请求再次成功(这也使 php 脚本毫无用处,很明显)。

顺便说一句,将所有内容更改为 GET 也无济于事(数据在 URL 中可见,但错误保持不变)。

感谢您抽出宝贵时间,非常感谢您提供任何帮助。

【问题讨论】:

  • 检查您的错误日志。他们会告诉你问题出在哪里。

标签: javascript php jquery ajax post


【解决方案1】:

500 错误是内部服务器错误。

您可以在脚本运行的根目录或脚本顶部检查您的 PHP error_log 文件,添加此文件以启用错误报告并查看 500 错误转换为的真正错误:

error_reporting(E_ALL); @ini_set('display_errors', 1);

这很可能是 PHP 致命错误或语法错误。

【讨论】:

    【解决方案2】:

    问题可能与文本文件的相关权限有关,或者无法写入。向文件添加权限将有助于解决问题。

    自己解决此问题的一种方法是检查您的 apache/php 错误日志。这应该给你一个非常清楚的指示问题出在哪里。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-09-11
      • 1970-01-01
      • 2014-07-04
      • 1970-01-01
      • 2012-09-06
      • 2015-05-31
      相关资源
      最近更新 更多