簡體   English   中英

AJAX將數據返回到jquery

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM