0

我在进行 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 代码是否存在导致此错误的问题?

4

2 回答 2

3

在使用它们之前定义你的函数,例如:

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 是可以接受的,但由于您没有使用对象进行函数交互,因此请去掉工作集的关键字

于 2013-08-12T14:21:53.907 回答
2

尝试更改public function为 just function

function add($data) {
    return 'test';
}
于 2013-08-12T14:22:23.457 回答