首页 > 解决方案 > 来自 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

请指导我的好方法

提前致谢

标签: phpapi

解决方案


您正在阅读,$_POST因此您期望数据以编码方式发送application/x-www-form-urlencoded或发送multipart/form-data

Angular 默认发送编码为application/json.

更改您发送数据的格式或更改您希望接收数据的格式


推荐阅读