2014-03-12 63 views
2

我有一個讓我困惑的問題。我有一個發送json對象的ajax函數,並且我看到了在F12 Chrome頭中解析的JSON,並且我收到了成功警報。PHP沒有收到我的jQuery發送的AJAX AJAX

$(document).ready(function() { 
     var test = {'bob':'foo','paul':'dog'}; 
     $.ajax({ 
      url: "test.php", 
      type: 'POST', 
      contentType: "application/json; charset=utf-8", 
      data: JSON.stringify(test), 
      success: function(data) { 
       alert("Bien: " + data); 
      }, 
      failure: function(errMsg) { 
       alert("Mal: " + errMsg); 
      } 
     }); 
}); 

但在我的PHP頁面中,我看不到任何POST,任何東西。我可以看到我的帖子收到,但別的:

<?php 

if ($_SERVER['REQUEST_METHOD'] == 'POST') { 
    echo "post"; //Result 'post' 
} 

foreach($_POST as $stuff) { 
    echo $stuff; //Nothing at all 
} 

print_r(json_decode($_POST["data"], true)); // Undefined index: data 

在相同的代碼我用

$.post("test.php", { data: { name: "John", time: "2pm" } }); 

和作品,然後是一些與代碼相關的,但我實在看不出啥子是它。

謝謝你的幫助!

+0

[在PHP處理JSON請求(http://stackoverflow.com/questions/3063787/handle-json-request-in-php) – Quentin

+1

嘗試沒有可能重複JSON.stringify在你的ajax調用。 – Needpoule

+0

當您檢查$ _POST ['bob']時會發生什麼?此外,你不應該需要json.stringify。 – Jonast92

回答

3

試試這個,而不是

$results = json_decode(file_get_contents('php://input')); 
echo $results->bob //Result foo 
+0

這就是問題,偉大的艾米特,謝謝! – Ramon