Я создаю REST API в PHP.Служба login
:
<?php
include_once 'libs/Database.php';
header("Content-Type: application/json; charset=UTF-8");
Database::getPDO();
$myObj = null;
if ( Database::check($_POST['username'], $_POST['password']) ) {
$myObj = array('message' => "Verified", 'success' => true);
} else {
$myObj = array('message' => "Unauthorized", 'username' => $_POST['username'], 'success' => false);
}
$myJSON = json_encode($myObj);
echo $myJSON;
?>
И, как вы видите, я обращаюсь к глобальной переменной $_POST
.
- Почтальон: отправка запроса POST с заголовком
x-www-form-urlenconded
и указав ключи и значения, сервер захватывает такие ключи. - Ionic: отправка запроса POST с использованием
HttpClient
не будет работать.(Сервер захватывает null
для обоих ключей, username
и password
).
Это код провайдера:
login(user, pass, url) {
const httpOptions = {
headers: new HttpHeaders({
'Content-Type': 'application/x-www-form-urlencoded'
})
};
return this.http.post(url, "username="+user+"&"+"password="+pass, httpOptions);
}
Мне интереснокак body
должен быть отформатирован, и в соответствии с эта ссылка должна быть такой же, как я сделал (username = user & password = pass).Кстати, при вызове функции login
все параметры не равны NULL, следовательно, проблема в запросе.
Для тех, кто заинтересован, ответ сервера:
{message: "Unauthorized", username: null, success: false}
Любая помощь будет оценена.