我现在已经浏览了一些,但找不到适合我的答案,无论如何,这是JS:
jQuery.ajax({
url:'scripts/form.php?'+
'name='+$('#name').val()+
'&comment='+$('#comment').val(),
type:'POST',
dataType:'json',
complete:function(success) {
alert(success.responseText);
alert(success.name);
}
});
这是(摘要)脚本
header('Content-type: application/json');
$name = $_GET['name'];
$comment = $_GET['comment'];
echo json_encode(array('name'=>$name, 'comment'=>$comment));
以下是警告框的输出:
我尝试了很多不同的东西,但我很茫然。
答案 0 :(得分:2)
您应该使用success
事件而不是complete
事件 - 否则,响应不会自动解析为JSON。
jQuery.ajax({
url:'scripts/form.php?'+
'name='+$('#name').val()+
'&comment='+$('#comment').val(),
type:'POST',
dataType:'json',
success:function(data) {
alert(data.name);
}
});
如果要使用complete
处理程序,则需要使用$.parseJSON
解析返回值,然后才能将其用作对象:
var response = $.parseJSON(success.responseText);
答案 1 :(得分:1)
使用$.getJSON()
,因为您不需要$.ajax()
的完全灵活性。
$.getJSON('scripts/form.php',
{
name: $('#name').val(),
comment: $('#comment').val()
}, function (data)
{
alert(data.name);
});