首頁  >  文章  >  後端開發  >  jquery取得服務端的json資料問題

jquery取得服務端的json資料問題

WBOY
WBOY原創
2016-09-08 08:44:041047瀏覽

相同的ajax方法請求不同的php傳回的json數據,很奇怪的是一個可以有值一個沒有值。如下是我的ajax方法接收回傳資料的處理

<code>function getUpList(_url, _u, _p){
    $.ajax({
        type:"GET",
        data:$.param({uid:_u, page:_p}),
        url:_url,
        dataType:'json',
        success:function(obj){
            alert(obj.status);
            if(obj.status == 1){
                $('div[name="data-list-p"]').append(obj.html);
            }
        }
    });
}</code>

我可以非常確定obj拿到的確實是json格式的資料。但是alert一直是undefined的,表示非常費解啊!

回覆內容:

相同的ajax方法請求不同的php傳回的json數據,很奇怪的是一個可以有值一個沒有值。如下是我的ajax方法接收回傳資料的處理

<code>function getUpList(_url, _u, _p){
    $.ajax({
        type:"GET",
        data:$.param({uid:_u, page:_p}),
        url:_url,
        dataType:'json',
        success:function(obj){
            alert(obj.status);
            if(obj.status == 1){
                $('div[name="data-list-p"]').append(obj.html);
            }
        }
    });
}</code>

我可以非常確定obj拿到的確實是json格式的資料。但是alert一直是undefined的,表示非常費解啊!

這麼神奇,題主你確定請求的這兩個都是標準的json資料!要都是標準的應該不會出現undefined。你加eval試試呢!

<code>success:function(obj){
    obj = eval("("+obj+")");
    alert(obj.status);
    if(obj.status == 1){
        $('div[name="data-list-p"]').append(obj.html);
    }
}</code>

有沒有拿到資料在chrome的console裡面看一下就知道了啊

是不是兩個url回傳資料格式不對啊!你看看是不是json不標準

應該回傳的不是 JSON 格式,而是 JSON 字串,轉一下就可以了

無論是chrome還是firefox都能夠看到回傳的參數 很好確認! ~
你先別急著輸出.status 先輸出整個obj 再看結果比較好~!

將php回傳json的程式碼改為一樣的看下

嗯。我也確信你拿的到是json數據,但是這個obj中確實有status屬性嗎?


console.log(obj); 用這個方式在控制台看會比較方便。

<code class="javascript">var obj_json =  JSON.parse(obj);</code>

字串變為json

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn