2013-03-19 2 views
0

Я отправляю на PHP скрипт с помощью JQuery:jQuery Ответ POST OK, но PHP-скрипт не получает POST?

$.post('http://*****.php', {'clicked':'true'}, 'json'); 

Глядя на почтовых данных, он отвечает:

Request URL:http://*****.php 
Request Method:POST 
Status Code:200 OK 

данные формы в заголовках выглядит следующим образом:

clicked:true 

Когда я пытаюсь получить данные POST на моем скрипте PHP через:

var_dump($_POST); 

Я получаю пустой массив:

array(0) { } 

Однако, когда играл с командной строкой, я могу успешно просматривать почтовые данные из ответа, когда я делаю:

wget --post-data 'clicked=true' http://****.php 

Успешным ответ с wget:

array(1) { 
    ["name"]=> 
    string(4) "test" 
} 

Мне не удалось это выяснить ... и это не мой файл HTACCESS. Кроме того, запросы GET работают очень хорошо. Я предполагаю, что мой jQuery POST ошибочен, но не знаю, что это может быть - он поступает непосредственно из документов jQuery.

+0

в какой момент вы пытаетесь сделать УАК дамп? – philipobenito

+0

Вы заглянули внутрь 'php: // input'? – jmeas

+0

Дамп var находится в самом верху скрипта. Как я могу посмотреть в 'php: // input'? – mdance

ответ

3

Когда данные POST отправляются как строка JSON, $_POST не отображает данные. Чтобы получить доступ к нему, вы должны использовать php://input.

$phpinput = file_get_contents("php://input"); 
if(!$phpinput) { 
    //No data was sent 
} 
else { 
    //Do something with yo data 
} 

Для технических деталей этого check out this great answer вклад в одном из приведенных ниже комментариев.

+0

EDIT: Работает. Зачем? – mdance

+0

[Этот ответ] (http://stackoverflow.com/a/8893792/122353) может объяснить, почему он работает. Похоже, что jQuery отправляет данные, не нормированные в querystring, а скорее как строка JSON. PHP не может это понять, поэтому он не анализируется в '$ _POST'. –

+0

Это, похоже, проблема. Благодарю. – mdance

0

Используйте сырье $ .ajax вместо

$.ajax({

url : 'http://*.php', data : {'clicked':'true'}, dataType : 'json', method : 'post'

});

Смежные вопросы