我在进行ajax调用时收到500内部服务器错误。
这是进行调用的javascript / jquery:
$.ajax({url: 'ServicesAjaxHandler.php',
data: {action: 'add'},
type: 'post',
success: function(output) {
alert(output);
},
error: function (xhr, ajaxOptions, thrownError) {
alert(xhr.status);
alert(xhr.responseText);
alert(thrownError);
}
});
以下是调用的php文件:
<?php
if(isset($_POST['action']) && !empty($_POST['action'])) {
$action = $_POST['action'];
switch($action) {
case 'add' : add($_POST);break;
}
}
public function add($data) {
return 'test';
}
?>
xhr.responseText
什么都不返回。
我的PHP代码是否存在导致此错误的问题?
答案 0 :(得分:3)
在使用它们之前定义你的功能,EG:
function add($data) {
return 'test';
}
if(isset($_POST['action']) && !empty($_POST['action'])) {
$action = $_POST['action'];
switch($action) {
case 'add' : add($_POST);break;
}
}
如果你有这样的设置,那么使用关键字public
是面向对象的应用程序:
class Test_Class {
public function add($data) {
return 'test';
}
}
使用关键字public是可以接受的,但由于您没有使用对象进行功能交互,因此请删除工作集的关键字
答案 1 :(得分:2)
尝试将public function
更改为function
。
function add($data) {
return 'test';
}