这种情况:
我有一个用Angular JS制作的简单应用程序,它通过codeigniter中的API与服务器通信。
该应用程序中有一个登录系统。当用户输入电子邮件和密码时,此数据将发送到服务器,如果电子邮件存在且密码匹配,则返回true。
我做了很多尝试,但没有弄清楚我该怎么做。
这是代码:
表格:
<form role="form" method="post" novalidate ng-submit="submitForm()"> <div class="form-group"> <label for="exampleInputEmail1">Email address</label> <input type="email" class="form-control" name="email" ng-model="user.name" placeholder="Enter email"> </div> <div class="form-group"> <label for="exampleInputPassword1">Password</label> <input type="password" class="form-control" name="password" ng-model="user.password" placeholder="Password"> </div> <button type="submit" class="btn btn-default">Submit</button> </form>
这是Angular js控制器:
$scope.authorized = false; $scope.user = {}; $scope.submitForm = function() { console.log("posting data...."); $http({ method : 'POST', url : 'http://127.0.0.1/api/main/login', headers: {'Content-Type': 'application/json'}, data : JSON.stringify({email:$scope.user.email, password:$scope.user.password}) }).success(function(data) { console.log(data); $scope.authorized = data; if ($scope.authorized) { $location.path("memberArea"); }; }); }
在 codeigniter方法 中尝试了很多东西。现在只有这样:
function login() { print json_encode($_POST); }
但是我不知道是否可以将数据接收到$ _POST中,因为它似乎是空的。
所以问题是:
如何使用codeigniter方法接收数据?最好先发送为JSON,然后发送为json_decode?我也尝试过json_decode($ _ POST,true); 但是是空的。但是,如果数据不在$ _POST中呢?我有点困惑。
谢谢你的帮助!
编辑:
谢谢你们的答复。那是尝试过的一件事。但是不知何故。现在,例如,方法是这样的:
function login() { $email = $this->input->post('email'); var_dump($email); print json_encode($email); }
但是返回的是布尔值false。
谢谢回复。解决方法如下
$obj=json_decode(file_get_contents('php://input'));
你可以通过测试
print_r(json_decode(file_get_contents('php://input')));