如何从ajax post call中获取数据?

时间:2015-04-09 16:28:40

标签: php jquery ajax

我想从ajax帖子中获取数据。我的ajax文件如下:

$('#login').on('click',
    function (e) {
        // alert("login ic clicked");
        e.preventDefault();
        // var contents = $(this).serialize(); 
        // alert("hello in success");

        var username = $('#username').val();
        var password = $('#password').val();
        alert(username);
        $.ajax(
        {

            url:'check_login.php',
            type:'POST',
            dataType:"json",
            data: "{'username':'" + username + "','password':'" + password + "'}",
            contentType: "application/json; charset=utf-8",
            success:function(data)
            {
                // $('#addTitleStatus').removeClass('show alert-success alert-danger');
                alert("i am in success");
                if(data.success)
                {
                    alert("data is ok" + data.result);

                    // $('#addTitleStatus').addClass('alert-success');
                    // $('#addTitleStatus').html(data.result);
                    // $('#addTitleStatus').addClass('show');
                }
                else
                {
                    alert(data);
                    // $('#addTitleStatus').addClass('alert-danger');
                    // $('#addTitleStatus').html(data.result);
                    // $('#addTitleStatus').addClass('show');
                }
            },
        }
            );
        // alert("Wfah");
    });

我的check_login.php文件如下:

<?php 

    $json  = array('success' => false, 
                    'result' => 0
                    );
    $username = $_POST['username'];

    json_decode($username);

    $json['result'] = $username;
    $json['success'] = "true";
    echo json_encode($json);



 ?>

Firefox显示以下内容:

  


注意:未定义索引:用户名    /opt/lampp/htdocs/ambition/check_login.php 6 {&#34;成功&#34;:&#34; true&#34;,&# 34;结果&#34;:空}

请帮我解决这个问题。

1 个答案:

答案 0 :(得分:2)

data:选项应该是param=value&param=value形式的对象或字符串,而不是JSON字符串。通常首选对象方法,以便jQuery正确编码它。所以它应该是:

data: { username: username, password: password },

data: 'username=' + encodeURIComponent(username) + '&password=' + encodeURIComponent(password),

并删除contentType:选项。