我正在用PHP创建一个REST API。服务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
全局变量。
x-www-form-urlenconded
的POST请求并指定键和值,服务器会捕获这些键。HttpClient
发送POST请求将不起作用。 (服务器为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
的格式如何,并且根据this link应该像我已经完成的那样(username = user&password = pass)。顺便说一下,在调用login
函数时,所有参数都不为空,因此问题出在请求中。
对于您感兴趣的人,服务器的答案是:
{message: "Unauthorized", username: null, success: false}
任何帮助将不胜感激。
答案 0 :(得分:0)