我很猶豫,因爲在這個主題上有很多其他帖子(例如one和two),但這些帖子中的解決方案似乎都不適用於我。jQuery AJAX調用的POST數組爲空
我想通過一個JSON編碼的對象從頁面到PHP控制器,然後迴應一些信息。
如果我在Firebug中觀看,我可以看到在'Post'選項卡下發送的對象,但是當我打印出$ _GET,$ _POST和$ _REQUEST數組時,我什麼都看不到關於json對象。 $ _GET數組至少顯示我的查詢字符串'update-player',但POST是空的,並且REQUEST只顯示一些本地的Cookie。
這是我的jQuery代碼。正如你所看到的,我現在正在對JSON進行硬編碼,目的是讓我有一個jQuery方法來更新本地對象。
function sendPlayerUpdate(row, col) {
var playerinfo = [
{
"id": 1,
"row": row,
"col": col
}
];
alert(playerinfo[0].id); //debugging
$.ajax({
type: 'POST',
url:"controller.php?a=update-player",
//data: $.toJSON(playerinfo[0],
data: { json: JSON.stringify(playerinfo) },
contentType: "application/json",
success: function(){
},
dataType: 'json'
});
};
我相應的PHP代碼處理請求:
// update player information from AJAX POST
case "update-player":
if (isset($_POST['json'])) echo "json received\n\n";
else echo "json not received\n\n";
echo "GET VARIABLES\n";
print_r($_GET);
echo "\n\nPOST VARIABLES\n";
print_r($_POST);
echo "\n\nREQUEST VARIABLES\n";
print_r($_REQUEST);
而且,我所看到的螢火蟲:
JSON沒有收到
GET VARIABLES
Array
(
[a] => update-player
)
POST VARIABLES
Array
(
)
REQUEST VARIABLES
Array
(
[a] => update-player
(local cookies)
)
我看到裏面的東西! – espais
由於application/json,你的json傳入正文請求 – GBD
ahhh,這很有意義......所以我可以將它拉入本地對象並從那裏開始工作。謝謝! – espais