Кордова: Невозможно получить значения параметров запроса на стороне сервера, используя $ _POST

Я занимаюсь разработкой мобильного приложения для одного из моих веб-приложений, все данные которого находятся на сервере. По запросу данные будут отправлены в ответ в формате JSON. Я делаю почтовый запрос следующим образом:

$http.defaults.headers.post['Content-Type'] ='application/x-www-form-urlencoded';
$http.post(base_url+"get/memberLogin.php", {'username':userName, 'password':passWord, 'tempKey':'XHJJUQWERgfrbbbbokaw1222344'}...

данные отправляются в почтовом запросе, как я могу видеть в firebug браузера firefox. Но на стороне сервера, когда я делаю var_dump($_POST) или же var_dump($_REQUEST) я получаю пустой массив. Как это так ??? Поскольку я публикую данные на сервере, они должны быть записаны с помощью $_POST но не сработало

Вместо этого, если я отправляю данные в следующем формате:

$http.post(base_url+"get/memberLogin.php?username="+userName+"&password="+passWord, {}...

Я получаю значения параметров на стороне сервера, используя $_REQUEST, В чем проблема $_POST??

0

Решение

Но на стороне сервера, когда я делаю var_dump ($ _ POST) или var_dump ($ _ REQUEST), я получаю пустой массив.

Пока вы устанавливаете тип контента для application / x-www-form-urlencoded, Angular кодирует данные в формате JSON.

PHP не может его проанализировать (потому что это не application / x-www-form-urlencoded), поэтому у него нет данных для заполнения $_POST Wiht.

Я получаю значения параметров на стороне сервера, используя $ _REQUEST. В чем проблема с $ _POST ??

PHP имеет глупые соглашения об именах.

$_GET не содержит все данные из запроса GET. Содержит данные из строки запроса.

$_POST не содержит все данные из запроса POST. Содержит данные из тела запроса.

Это:

$http.post(base_url+"get/memberLogin.php?username="+userName+"&password="+passWord

… делает запрос POST, но вы помещаете все данные в строку запроса (где вы должны проходить через encodeURIComponent первый).

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]