我想从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;:空}
请帮我解决这个问题。
答案 0 :(得分:2)
data:
选项应该是param=value¶m=value
形式的对象或字符串,而不是JSON字符串。通常首选对象方法,以便jQuery正确编码它。所以它应该是:
data: { username: username, password: password },
或
data: 'username=' + encodeURIComponent(username) + '&password=' + encodeURIComponent(password),
并删除contentType:
选项。