Javascript AJAX将数据返回到jquery
我有一个ajax调用:Javascript AJAX将数据返回到jquery,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我有一个ajax调用: jQuery.ajax({ type: "POST", // HTTP method POST or GET url: 'inc/functions.php?func=get_usr&id='+usr, //Where to make Ajax calls success:function(data){ if (data.fname) { var fname = da
jQuery.ajax({
type: "POST", // HTTP method POST or GET
url: 'inc/functions.php?func=get_usr&id='+usr, //Where to make Ajax calls
success:function(data){
if (data.fname) {
var fname = data.fname;
//alert (fname);
$('#rname').text(fname);
}
},
error:function (xhr, ajaxOptions, thrownError){
alert(thrownError);
}
});
数据返回:
fname: "test_fname"
lname: "test_lname"
role: "1"
问题是我可以从中获取fname
,警报显示未定义。这不需要序列化,是吗?我在另一个项目中使用了这个函数,但我不明白为什么它不起作用。您没有返回jQuery知道如何解析的数据结构中的数据<代码>数据将是一个字符串,因此它不会具有您试图读取的属性 您应该改用JSON 由于您正在向PHP脚本发出请求,请按如下方式执行:
header("Content-Type: application/json");
print json_encode(Array(
"fname" => "test_fname",
"lname" => "test_lname",
"role" => "1"
));
使用
数据类型:“json”
有效,我不知道我是怎么忘记的。根据您在下面关于回复问题的评论,不完全清楚数据的确切内容是什么,但可能json还没有被解析
您可以使用数据类型自动执行此操作:
jQuery.ajax({
type: "POST", // HTTP method POST or GET
url: 'inc/functions.php?func=get_usr&id='+usr, //Where to make Ajax calls
// here
dataType: 'json',
success:function(data){
if (data.fname) {
var fname = data.fname;
//alert (fname);
$('#rname').text(fname);
}
},
error:function (xhr, ajaxOptions, thrownError){
alert(thrownError);
}
});
添加数据类型:“json”似乎解决了这个问题,直到我碰巧重新扫描了代码,才发现我已经删除了它。这是一个格式错误的json响应吗?你能显示数据
对象的内容吗?{“fname”:“Jeff”,“lname”:“coldwell”,“role”:“1”}是响应(facepalm)数据类型:“json”,忘记添加问题中给定的数据(no{
、no、
和no}
)强制jQuery忽略内容类型(如果`dataType:'json'起作用,这肯定是错误的)将无法解决问题。@Quentin在问题下方看到OP的评论:响应是{“fname”:“Jeff”,“lname”:“coldwell”,“role”:“1”
。