Я занимаюсь разработкой мобильного приложения для одного из моих веб-приложений, все данные которого находятся на сервере. По запросу данные будут отправлены в ответ в формате 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
??
Но на стороне сервера, когда я делаю 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
первый).
Других решений пока нет …