AngularJS:无法POST到服务器PHP文件(获得404)

时间:2013-11-09 06:16:15

标签: php .htaccess angularjs http-status-code-404 yeoman

大家好,谢谢你的时间! 我是AngularJS的新手,目前正处理我的第一个服务器端部分。 我在VirtualBox上运行,使用Yeoman进行设置。

我的HTML有两个字段:用户名和密码,它们又传递给js文件:

function authUsers($scope, $http) {
$scope.url = '../api/authUsersService.php'; // The url of our search

// The function that will be executed on button click (ng-click="search()")
$scope.loginAttempt = function() {

    // Create the http post request
    // the data holds the keywords
    // The request is a JSON request.
    alert($scope.session.username);alert($scope.session.password);
    $http.post($scope.url, { "username" : $scope.session.username, "password" : $scope.session.password}).
    success(function(data, status) {
        $scope.status = status;
        $scope.data = data;
        $scope.result = data; // Show result from server in our <pre></pre> element
        alert(data);
    })
    .
    error(function(data, status) {
        $scope.data = data || "Request failed";
        $scope.status = status;
        alert(data);         
        alert(status);
    });
};
}

我收到2个提醒(用户名,密码)。 此文件和HTML本身位于Angular的APP文件夹下。在文件夹外,在同一个包含文件夹中:我创建了'API'文件夹。这是文件api / authUsersService.php:

<?php
$data = file_get_contents("php://input");

$objData = json_decode($data);

// Create connection
$con=mysqli_connect("example.com","peter","abc123","my_db");

// Check connection
if (mysqli_connect_errno($con))  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$result = mysqli_query($con, "select userID from authUsers where username = " . $objData->username . " and password = " . $objData->password);

if ($result->num_rows > 0) {
    $row = $result->fetch_array(MYSQLI_ASSOC);
    echo $row["userID"];
} else {
    echo "";    
}
?>

提交HTML表单时,我收到来自控制器(js文件)的所有警报,包括“.error”警告。我在错误中得到的数据:“无法发布到/api/authUsersService.php”,状态为“404”。

我找不到任何解决方案。尝试了var \ www \ http文件夹中的.htaccess,没有帮助。 请帮我成功获取PHP服务器代码! 谢谢!

1 个答案:

答案 0 :(得分:0)

在网址中使用“../”表示您做错了。

您不能在网络服务器的根目录“之外”,因此您需要将其放在“app”目录中,以便可以通过网络访问。