Php Ajax PhoneGap始终出错

Php Ajax PhoneGap始终出错,php,jquery,ajax,cordova,Php,Jquery,Ajax,Cordova,我必须制作一个应用程序,我已经决定使用它,但是我的Ajax总是说“错误”,我不知道为什么,因为insert工作得很好 $("#test").click(function() { var name = $("#name").val(); var password = $("#password").val(); alert(name+' '+password); $.ajax({ type: "POST", url: "http://1

我必须制作一个应用程序,我已经决定使用它,但是我的Ajax总是说“错误”,我不知道为什么,因为insert工作得很好

$("#test").click(function() {
    var name = $("#name").val();
    var password = $("#password").val();
    alert(name+' '+password);
    $.ajax({
        type: "POST",
        url: "http://191.165.1.16/PULZ/ajax_action.php",
        // contentType: "application/json; charset=utf-8",
        dataType: "json",
        data : {
            actionname : 'insert',
            name:name,
            password:password
        },
        success: function(data) {
            alert("work");
        },
        error: function(data) {
            alert("There was an error loading the feed");
        }
    });
});
还有我的PHP代码

if (isset($_POST["actionname"]) && !empty($_POST['actionname'])){
    $actionname = $_POST['actionname'];

    if($actionname == 'insert'){
        $connect = new PDOsql();
        $name = $_POST['name'];
        $password = md5($_POST['password']);
        $sql="INSERT INTO user(name,password) VALUES(?,?)";
        $opt = array($name, $password);
        $connect->query($sql,$opt);

        $connect = null;

        die(
            json_encode(
                array(
                    'state'=>'success'
                )
            )
        );
    }
}
不能将“empty()”与非变量元素一起使用,您将始终收到一个内部服务器错误“500”

注意:在PHP5.5之前,empty()只支持变量;别的 将导致分析错误。换言之,以下情况不会发生 工作:空(修剪($name))。相反,请使用trim($name)==false

试试这个

JAVASCRIPT

$("#test").click(function() {
    var name = $("#name").val();
    var password = $("#password").val();
    alert(name + ' ' + password);
    $.ajax({
        type: "POST",
        url: "http://191.165.1.16/PULZ/ajax_action.php",
        // contentType: "application/json; charset=utf-8",
        dataType: "json",
        data: {
            actionname: 'insert',
            name: name,
            password: password
        },
        headers: {
            'Content-Type': 'application/json'
        }
        success: function(data) {
            alert("work");
        },
        error: function(data) {
            alert("There was an error loading the feed");
        }
    });
});
PHP


尝试删除“类型:”、“url:”、“数据类型:”,等等,只需保留值就可以从php返回json字符串,以检查是否存在问题。。。如果它工作正常,那么您知道在哪里搜索……您实际上有一个类
PDOsql
?该类的
query()
方法是否同时准备和执行查询?并检查控制台中给出的响应。直接在地址栏上检查php url,给出硬编码的post值,然后查看输出结果。如果您在响应中收到任何错误或警告,您的ajax将失败,因为它正在接受json,老实说,这只是一个很好的猜测。分别检查服务器/客户端。试着从curl命令或Postman调用服务器脚本,看看它返回什么,它是什么格式,等等。然后,当您确定它可以工作时,让客户端正确地调用它。$\u POST是一个数组,所以在OP代码中它被正确地使用,不管OP运行的是哪个PHP版本。
if (isset($_POST["actionname"]) && isset($_POST['name']) && isset($_POST['password'])){
    $actionname = $_POST['actionname'];
    $name = $_POST['name'];
    $password = $_POST['password'];

    if($actionname == 'insert'){
        $connect = new PDOsql();
        $name = $_POST['name'];
        $password = md5($_POST['password']);
        $sql="INSERT INTO user(name,password) VALUES($name,$password)";
        $opt = array($name, $password);
        $connect->query($sql,$opt);

        $connect = null;

        die(
            json_encode(
                array(
                    'state'=>'success'
                )
            )
        );
    }
}