我使用jQuery将表单提交到服务器上的php文件。 一切正常......(php文件获取正确的帖子变量,进行数据库输入等) 但是在回应中,有时候“数据”很古怪。
$('#form_submit').click( function() {
$.post("path/to/script.php", $('#form').serialize(), function(data) {
if ( data.status == 1 ) {
alert('awesome sauce');
} else {
alert('crap');
}
}, "json");
});
php脚本返回(成功时)
$response['status'] = 1;
$response['message'] = 'worked';
echo json_encode($response);
exit();
我得到了很多废话,而且还没有足够的酱汁。
有没有人知道为什么有时'data.status'是未定义的,有时它不是?
答案 0 :(得分:3)
尝试这样>
$('#form_submit').click( function() {
$.post("path/to/script.php", $('#form').serialize(), function(data) {
var obj = jQuery.parseJSON(data);
if ( obj.status == 1 ) {
alert('awesome sauce');
} else {
alert('crap');
}
});
});
答案 1 :(得分:2)
exit()在输出缓冲方面的表现如何?它是否刷新输出缓冲区?
答案 2 :(得分:0)
试试这个:
$('#form_submit').click( function() {
$.post("path/to/script.php", $('#form').serialize())
.success(function(){
alert('awesome sauce');
}).error(function(){
alert('crap');
});
});