PHP在处理来自angularjs的POST请求后返回html响应
我已将angularjs post请求作为:PHP在处理来自angularjs的POST请求后返回html响应,php,angularjs,post,Php,Angularjs,Post,我已将angularjs post请求作为: var loginApp = angular.module("loginApp",[]); loginApp.controller('loginController', function loginController($scope,$http,$window) { $scope.submitHandle = function() { var req = { url: '../login.php',
var loginApp = angular.module("loginApp",[]);
loginApp.controller('loginController', function
loginController($scope,$http,$window) {
$scope.submitHandle = function() {
var req = {
url: '../login.php',
method: 'POST',
data: {
username: $scope.Username,
password: $scope.Userpassword,
}
};
$http(req).then(function success(response) {
var data = response.data;
if(data.returnCode ==200) {
alert("Welcome : "+ data.username);
$window.location = '../webapp/html/user.html';
}
else {
alert("User does not exist");
}
}, function(response) {
alert("Error on server side");
});
}
});
此请求被传递到login.php,如下所示:
<?php
$servername = "localhost";
$username1 = "root";
$password1 = "abcd";
try {
$conn = new PDO("mysql:host=$servername;dbname=ITC_MANAGEMENT", $username1, $password1);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$postdata=file_get_contents("php://input");
$request=json_decode($postdata,true);
$username=$request->username;
$password=$request->password;
$stmt = $conn->prepare("SELECT UserId, Password from USER_INFO WHERE UserID='".$username."' && Password='".$password."'");
$stmt->execute();
$row = $stmt->rowCount();
if ($row > 0){
$json_array=array();
$json_array['returnCode']=200;
$json_array['username']="user1";
echo json_encode($json_array);
} else{
$json_array=array("returnCode"=>201,"username"=>"user1");
echo json_encode($json_array);
}
}
catch(PDOException $e)
{
echo "Connection failed: " . $e->getMessage();
}
?>
您应该尝试处理PHP如何向应用程序客户端抛出错误
<?php
// Turn off error reporting
error_reporting(0);
// Report runtime errors
error_reporting(E_ERROR | E_WARNING | E_PARSE);
// Report all errors
error_reporting(E_ALL);
// Same as error_reporting(E_ALL);
ini_set("error_reporting", E_ALL);
// Report all errors except E_NOTICE
error_reporting(E_ALL & ~E_NOTICE);
?>
参考:
参考资料:如果您要查看html响应,那么您可以在第11行和第12行看到一些非对象问题。所以我认为你应该设法解决这个问题
Notice: Trying to get property of non-object in C:\wamp64\www\itc\login.php on line <i>11</i>
Notice: Trying to get property of non-object in C:\wamp64\www\itc\login.php on line <i>12</i>
从json对象$request获取用户名和密码
为了获取post数据,您正在使用文件内容
$postdata=file_get_contents("php://input");
然后是json对象
$request=json_decode($postdata,true);
请检查您是否在php中获得$postdata。
要在php中捕获postdata,可以使用$\u POST[]
使用错误报告(0);将修复您的问题,但为了使您的代码正确,您应该修复出现在html响应中的通知您阅读了吗?这似乎是您的环境PHP错误配置。。。查看此处呈现的HTML:第11行和第12行出现错误,即$username=$request->username
和$password=$request->password
。看起来$request变量没有定义。谢谢。我可以解决$username=$request->username中的错误$密码=$request->password代码>使用$username=$request['username']$密码=$request['password']代码>@BadalJoshi太棒了!确保您可以从日志文件或日志处理程序PHP包(如Monolog)访问此错误。
$postdata=file_get_contents("php://input");
$request=json_decode($postdata,true);