<!DOCTYPE html>
<html>
<head>
<title>login</title>
<script src="angular.min.js"></script>
<style type="text/css">
#a{
display: none;
}
</style>
</head>
<body>
<div ng-app="myapp" ng-controller="myctrl">
<p>Input something in the input box:</p>
<input type="text" ng-model="username" placeholder="username"><br>
<input type="password" name="password" ng-model="password" placeholder="password"><br>
<button ng-click="login()">login</button>
<p id="a">
{{ resmsg }}<br>
<br></p>
</div>
<script type="text/javascript">
var app= angular.module('myapp',[]);
app.controller('myctrl', function ($scope , $http, $templateCache) {
$scope.resmsg ="";
$scope.login = function()
{
$http({
method: 'POST',
url:'http://localhost/ng/myphp.php',
data:{username : $scope.username, password : $scope.password},
headers: {'Content-Type': 'application/x-www-form-urlencoded'},
cache: $templateCache
}).success(function(response) {
$scope.resmsg = response;
}).error(function(response){
})
$scope.resmsg = response;
}
})
</script>
</body>
</html>`
myphp.php
<? php
$postdata = file_get_contents("php://input");
$request = json_decode($postdata);
$username = $request->username;
$password = $request->password;
if($username == "admin" && $password== "admin"){
echo "1";
}
else {
echo "0";
}
?>
我试图使用angularjs创建一个简单的登录表单,php我有 尝试使用http.post()方法将我的表单数据发送到php文件 在角度js但没有得到任何东西作为回应和得到 errormsg(截图),错误就像没有函数一样 成功 帮助我摆脱这个错误
答案 0 :(得分:2)
您使用的角度是什么版本? $http.success
在角度1.5中被弃用,在角度1.6中被删除。您应该使用$http.then
,如下所示:
$http({
method: 'POST',
url:'http://localhost/ng/myphp.php',
data:{username : $scope.username, password : $scope.password},
cache: $templateCache
}).then(function(response) {
$scope.resmsg = response.data;
}).catch(function(response){
var err = response.data;
// process error
})
接下来,您在打开php标记时出错,还有一个额外的空格(使用<?php
代替<? php
。
此外,您的服务器似乎没有使用PHP处理文件,它只返回PHP代码本身。尝试直接访问脚本,看它是否返回代码或执行它。如果它将代码作为字符串返回,则Web服务器配置中会出错。