簡體   English   中英

處理來自AJAX請求的數據

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

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