Ajax PhoneGap始终出错

时间:2015-03-22 18:41:11

标签: php jquery ajax cordova

我必须创建一个应用程序,我决定使用PhoneGap,但我的Ajax总是说“ERROR”,我不知道为什么,因为插入工作非常好...

$("#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'
                )
            )
        );
    }
}

2 个答案:

答案 0 :(得分:0)

试试这个

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

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'
                )
            )
        );
    }
}

答案 1 :(得分:-1)

您不能将“empty()”与非变量元素一起使用,您将始终收到内部服务器错误“500”。

  

注意:在PHP 5.5之前,empty()仅支持变量;还要别的吗   将导致解析错误。换句话说,以下不会   work:empty(trim($ name))。相反,使用trim($ name)== false。

PHP Manual - empty