[英]AJAX return data to jquery
我有一個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 = data.fname;
//alert (fname);
$('#rname').text(fname);
}
},
error:function (xhr, ajaxOptions, thrownError){
alert(thrownError);
}
});
數據返回:
fname: "test_fname"
lname: "test_lname"
role: "1"
問題是我可以從中獲取fname
,警報顯示未定義。
這不必序列化嗎? 我有這個功能在另一個項目上很好地工作,但我不知道為什么這不起作用。
您不會以jQuery知道如何解析的數據結構返回數據。 data
將是一個字符串,因此不會具有您要讀取的屬性。
您應該改用JSON。
由於您是向PHP腳本發出請求,因此請執行以下操作:
header("Content-Type: application/json");
print json_encode(Array(
"fname" => "test_fname",
"lname" => "test_lname",
"role" => "1"
));
添加dataType:“ json”似乎可以解決此問題,直到我碰巧重新掃描代碼以查看是否已將其改版。
使用dataType: "json"
可以工作,我不知道該如何忘記。
根據您在有關響應的問題下方的評論,尚不清楚data
的確切內容是什么,但可能尚未解析json。
您可以使用dataType
自動執行此操作:
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);
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.