2011-09-24 78 views
0

這裏是我通過jQuery我的Ajax請求的成功功能,JSON變量返回正確但值未定義?

success: function(response) { 

    if (response.error == undefined) { 

    alert(response); 
    } 
$('#' + id).after('<div id="emailMsg" class="error">' + response.error + '</div>'); 

} 

因爲該值回來爲未定義它會提醒我返回的JSON這是...

{"error":true} 

這是爲什麼發生,肯定當我調用response.error我應該得到真或假。

UPDATE

變量被返回作爲字符串和不布爾值,我的json_encode();

if (!$q -> rowCount()) { 

    echo json_encode(array('error' => false)); 
} 
else { 

    echo json_encode(array('error' => true)); 
} 

回答

1

您可能想嘗試將dataType: 'json'參數添加到$.ajax調用中。這將確保jQuery將負責將響應作爲您的對象。

0

您需要先將字符串中的JSON解析爲JavaScript對象。

這可以用JSON.parse(response)完成。在沒有原生JSON的舊瀏覽器中,eval(response)也可以工作,但不太安全。

+0

剛剛嘗試過,在if語句之前添加它,不起作用:/ –

+0

嘗試'alert(typeof response);'看看它給了你什麼。 –

+0

它返回字符串,我編輯了我的問題,向您展示我的json_encode(); –