php - 来自 php API 的响应不起作用
问题描述
我实际上正在为前端编写一个角度的身份验证服务,为服务器端编写一个 php。
当我将标识发布到服务器以检查标识时,服务器会以布尔值响应,如果 ID 正确则为 true,否则为 false。
当我使用 POSTMAN 尝试我的函数时,响应很好(正确的 ID 为 true,错误的 ID 为 false)但是当我将它与具有完全相同参数的角度一起使用时,服务器总是响应 FALSE
这是代码:
服务器端 :
else if($action == 'Connection'){
try{
$project = $_POST['project'];
$username = $_POST['username'];
$password = $_POST['password'];
$stmt = $bdd->prepare("SELECT * FROM Projects WHERE name = :name AND admin_user = :username AND admin_pwd = :password");
$stmt->bindParam(":name", $project);
$stmt->bindParam(":username", $username);
$stmt->bindParam(":password", $password);
$stmt->execute();
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
if(count($result) === 0) {$response->credentialsOk = false;}
else {$response->credentialsOk = true;}
echo(json_encode($response));
}catch(Exception $e){
die('Erreur : '.$e->getMessage());
}
}
客户端 :
$rootScope.Connect = () => { // === $rootScope.Connect = function() { ... }
//Ask to the server if credentials is correct
$http.post(Global.url_api+'action=Connection',{username : $scope.username , password : $scope.pwd, project : $rootScope.project })
.then((response) => {
console.log(response);
})
}
结果
是的,我使用了完全相同的 ID
请指导我的好方法
提前致谢
解决方案
您正在阅读,$_POST
因此您期望数据以编码方式发送application/x-www-form-urlencoded
或发送multipart/form-data
。
Angular 默认发送编码为application/json
.
更改您发送数据的格式或更改您希望接收数据的格式。
推荐阅读
- mysql - 使用带有 Mariadb 和 PAM 身份验证的 Windows MySQL Workbench 8.0
- ruby-on-rails - 寻求帮助以防止添加包含太多列的表
- node.js - “npm update -g create-react-app” 不会像它应该做的那样更新 create-react-app
- javascript - getRequest.getParameter("param1") 为 Element.value 返回空
- makefile - 您应该如何在包含的 Makefile 中使用 .PHONY?
- ios - 将图像设置为 imageCache 到 imageCache 的开头而不是结尾
- fortran - Fortran 中的 PGI 编译错误:“前向引用函数”
- excel - 两列数据和转置匹配列 A 值到同一行
- arduino - LED引脚同时高低?
- ios - 如何下载私钥证书分发 iOS?