[英]Processing data from an AJAX request
我有一個PHP API,正在使用該API將所有內容輸出為JSON。
我需要調用一種API方法,並使用AJAX請求將其解析出來。 我正在使用jQuery(盡管沒關系)。
當我發出請求時,發出錯誤時會顯示“ parsererror”作為textStatus
和“語法錯誤:無效標簽”。
簡化代碼:
$.ajax
({
type: "POST",
url: "http://mydomain.com/api/get/userlist/"+mid,
dataType: "json",
dataFilter: function(data, type)
{
/* Here we assume and pray */
users = eval(data);
alert(users[1].id);
},
success: function(data, textStatus, XMLHttpRequest)
{
alert(data.length); // Should be an array, yet is undefined.
},
error: function(XMLHttpRequest, textStatus, errorThrown)
{
alert(textStatus);
alert(errorThrown);
},
complete: function(XMLHttpRequest, textStatus)
{
alert("Done");
}
});
如果我不使用eval(data)
那么一切正常。 好吧,除了data
仍未success
定義之外。 請注意,我在PHP中獲取一個對象數組,然后將它們通過json_encode
傳遞出去。 那會有所不同嗎?
在這方面沒有任何進展。 如果有人認為他們可以提供幫助,我願意提供更多代碼。
這是PHP的一面
private function _get_user_colors($id)
{
$u = new User();
$u->get_where(array('id' => $id));
$bar = array();
$bar['user'] = $u->stored;
foreach($user->colors as $color)
{
$bar['colors'][] = $color;
}
echo(json_encode($bar));
}
與其他基於PHP的腳本一起使用時,我的問題為零 。 我不知道為什么Javascript會對此提出質疑。
Parsererror通常指示來自服務器的響應格式錯誤。 如果直接在瀏覽器中加載它,看起來不錯嗎?
嘗試在錯誤處理程序中輸出alert(request.responseText)
(並將第一個參數重命名為request
)。 那應該可以解決腳本輸出錯誤的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.