我正在嘗試構建一個嚴重利用JSON進行數據訪問的HTML5應用程序。在幾個實例中,我想使用getJSON對象(使用JavaScript和JQuery)將JSON對象發佈到PHP頁面。然後,該PHP頁面將獲取JSON對象,執行一些業務邏輯,然後將單獨的JSON對象返回給調用頁面。使用getJSON將JSON對象發佈到PHP頁面並檢索JSON對象
我可以得到一個有效的JSON對象返回到調用頁面,但我似乎無法抓住我在原始請求中傳遞的JSON對象。我試過$ _GET,$ _POST和其他幾個選項。一切都無濟於事。
這是我的原始頁面上的代碼。這很簡單 - 當用戶單擊按鈕時,我們會執行一個AJAX調用,將JSON對象傳遞給名爲receive_jason.php的頁面。該頁面應該評估傳入的JSON對象並將另一個JSON對象返回到原始頁面。
第1頁:
<html lang="en">
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript"></script>
</head>
<script type="text/javascript">
function StartPost()
{
var strJSON = '{"id":"3","artist":"The Beatles","alblum":"White Alblum"}';
var jsonURL = "receive_json.php";
$.getJSON( jsonURL,
strJSON,
function(data) {
var items = [];
responseMsg = data["success"];
alert(responseMsg);
});
}
</script>
<body>
<input type="button" name="Post Data" value="Post Data" onClick="StartPost();">
</body>
</html>
這裏是receive_json.php頁面上的PHP代碼...
<?php
$incomingData = $_GET['artist'];
$myText =(string) $incomingData;
echo "{\"success\":\"" . strlen($myText) . "\"}";
?>
只要是明確的,在電話的getJSON作品,我真的收到返回時有效的JSON調用。但我不能訪問我傳遞的JSON對象。
我的問題....
1)這只是一個簡單的語法錯誤,我可以解決?
2)getJSON甚至是正確的功能嗎?
3)有沒有一種簡單的方法來調試getJSON請求,以便我可以看到頁面上發生了什麼?
,如果你想使用POST,使用'$ .ajax'。說實話,我對'.ajax()'語法感到非常滿意,以至於我總是使用它。 ;-)請記住,在服務器端,如果您在發佈JSON,則會向參數發佈字符串。它本質上不是「JSON對象」,您需要使用PHP解碼爲可用對象。 PHP是否有本機JSON解析工具? – 2012-07-06 18:39:48
@Greg Pettit - 請參閱json_encode和json_decode來處理PHP中的JSON。 – MB34 2012-12-04 15:55:57