日期:2014-05-16  浏览次数:20431 次

php用ajax为什么只能返回数字

//提交表单
function subm(){
var user = $('#frm').serialize();
$.ajax({
url: 'b.php',
type: 'POST',
data:user,
contentType:"application/json",
dataType: 'json',
async:false,
beforeSend: function(){
alert('Error loading PHP document');
},
success: function(result){
alert(result);
}
});
}


<form id="frm" action="" method="post" onsubmit="subm()">
<input
id="user" name="username" /><br />
<input id="password" type="password" name="password" /><br />

<input type="submit" value="提交" /></form>



然后我在b.php页面写一个 echo '123' 回调函数可以执行alert(res) 并输出123 可是我echo写字母字符中文他就没反应了 连框都不弹  我把页面设成utf-8 在 b.php也加了header 可是他应该能返回字母跟字符 就算乱码也会弹个窗吧 是不是那个json传递的问题 求教
------解决方案--------------------
你有 dataType: 'json' 
表示回传的应该是一个 json 串

显然非数字串因为缺少引号而导致解析失败
------解决方案--------------------
你的dataType是json形式,在php中就要返回json形式的数据
可以用json_encode(),转下返回