相同的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