2012-12-06 49 views
0

我想通過ajax傳遞一個json字符串到php,而php沒有正確解碼。解碼後php中的vardump總是返回null。任何人都可以告訴我我做錯了什麼。十分感謝!!!如何通過ajax將PHP傳遞給JSON?

var addObj= {"facility":"Baptist Medical Center", 
    "osb":"Jacksonville", 
    "office":"North Branch"}; 

var JSONstr = JSON.stringify(addObj); 

xmlhttp=new XMLHttpRequest(); 

xmlhttp.onreadystatechange=function() { 
    if (xmlhttp.readyState==4 && xmlhttp.status==200) { 
    var rt = xmlhttp.responseText; 
    alert(rt); 
    } 
} 
xmlhttp.open("GET","jsontest.php?addObj="+JSONstr,true); 
xmlhttp.send(); 

//php code in jsontest.php 
<?php 
var_dump(json_decode($_GET['addObj'], true)); 
?> 

//php returns null 
+1

什麼是'$ _GET [ 'addObj']'的價值?首先回聲。 –

+0

爲什麼不使用jQuery的ajax()?另外我建議在你的請求中使用POST而不是GET。 GET往往被緩存。 – Geo

+0

echo $ _GET ['addObj']; \t //導致 \t { 「設施」: 「浸信會醫學中心」, 「OSB」: 「傑克遜維爾」, 「辦公室」: 「北支」} 0.624341037357226 – seaBass

回答

0

嘗試urldecode第一荷蘭國際集團的參數:

var_dump(json_decode(urldecode($_GET['addObj']), true)); 
+0

應該不需要'url_decode' ... – Neal

+0

@Neal使用GET方法,字符串可能會被編碼,因爲它包含空格。 –