2012-07-06 105 views
0

我正在嘗試構建一個嚴重利用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請求,以便我可以看到頁面上發生了什麼?

+0

,如果你想使用POST,使用'$ .ajax'。說實話,我對'.ajax()'語法感到非常滿意,以至於我總是使用它。 ;-)請記住,在服務器端,如果您在發佈JSON,則會向參數發佈字符串。它本質上不是「JSON對象」,您需要使用PHP解碼爲可用對象。 PHP是否有本機JSON解析工具? – 2012-07-06 18:39:48

+0

@Greg Pettit - 請參閱json_encode和json_decode來處理PHP中的JSON。 – MB34 2012-12-04 15:55:57

回答

1

$.getJSON發送GET請求。

您需要使用$.ajax並使用method: "POST"type: "json"

1

使用這樣的:由於SLaks提到

$.ajax({ 
       url: "yourfile_orserverfile.php", 
       type: "POST", 
       data: { 
        //whatever your data is 
       } 
       datatype: "json", 
       success: function (status) { 
        if (status.success == false) { 
         //alert a failure message 
        } else { 
         //alert a success message 
        } 
       } 
      });