2011-12-15 149 views
3

PHP json_encode沒有返回正確的JSON編碼的字符串

var posturl = '/admin/getparamdetails/'; 
    var data = "adnetworkId="+adnetworkId; 
    $.ajax({ 
     type: "POST", 
     url: posturl, 
     data : data, 
     datatype: "json", 
     success: function(msg){ 
      //$("#displayPramForm").html(msg); 
      //alert('hello'+msg.length+' '+msg.hello.length); 
      console.log(msg); 
      if(msg!='') 
      { 
       alert(msg.hello); 
      } 
     }, 
     failure: function(msg){} 
    }); 
在我的PHP後端功能

,我使用json_encode簡單陣列上,如下所示:

$json_encoded_string = json_encode(array("hello"=>'abc')); 
echo $json_encoded_string; 
die;    

警報(msg.hello)回報未定義我。這裏出了什麼問題? 此外,在我的的console.log我能夠得到的輸出爲:

{"hello":"abc"}  

回答

2

在返回數據使用parseJSON

if (msg) { 
    msg = $.parseJSON(msg); 
    alert(msg.hello); 
} 
1

你要發送數據的內容類型「應用/ JSON」,否則將無法正常工作。

只需添加以下在你的PHP文件:

header('Content-type: application/json'); 
+0

不,它仍然沒有工作。 – debaShish 2011-12-15 10:45:34

+0

它應該是```header('Content-Type:application/json');``` – srph 2015-01-08 21:00:51