Intereting Posts

Пул POST пуст в вызове jQuery AJAX

Я стесняюсь спрашивать, так как есть множество других сообщений по этой теме (например, один и два ), но ни одно из решений в этих сообщениях, похоже, не применяется ко мне.

Я пытаюсь передать JSON-кодированный объект со страницы на PHP-контроллер, а затем ответить на некоторую информацию.

Если я смотрю в Firebug, я вижу, что объект отправляется на вкладке «Опубликовать», однако, когда я печатаю массивы $ _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); 

И что я вижу в Firebug:

Выход Firebug json не получен

 GET VARIABLES Array ( [a] => update-player ) POST VARIABLES Array ( ) REQUEST VARIABLES Array ( [a] => update-player (local cookies) ) 

Попробуйте на PHP, как показано ниже (когда запрос является приложением / json, то вы не получите данные в $ _POST)

 var_dump(json_decode(file_get_contents("php://input"))); 

Попробуйте это Может быть, это сработает для вас

  $.ajax({ type: 'POST', url:"controller.php?a=update-player", data: data_json=JSON.stringify(playerinfo), success: function (data){ }, });