Angularjs - 从自己的服务器请求PHP脚本返回403

时间:2017-04-24 16:33:37

标签: php angularjs http get cors

我在我的网站上使用AngularJS。我不想使用php向我的mysql数据库发出GET请求。我创建了一个简单的PHP脚本

<?php
header("Access-Control-Allow-Origin: *");
header("Content-Type: application/json; charset=UTF-8");

$conn = new mysqli($server, $username, $password, $database);

mysqli_set_charset($conn, "utf8");
$result = $conn->query("SELECT name FROM table");

$outp = "";
while($rs = $result->fetch_array(MYSQLI_ASSOC)) {
    if ($outp != "") {
        $outp .= ",";
    }
    $outp .= '{"name":"'  . $rs["name"] . '",';
}    
$outp ='{"records":['.$outp.']}';
$conn->close();

echo($outp);
?>

当我用angularJs http.get请求这个php文件时,响应是403禁止的。我的AngularJS代码:

getScript: function () {
        var req = {
            method: 'GET',
            url: '/app/scripts/script.php',
            headers: {
                'Content-Type': 'application/json'
            }
        };
        return $http(req);
    }

正如你所看到的,我甚至可以从同一台服务器获得403。我在这里缺少什么?

2 个答案:

答案 0 :(得分:0)

getScript: function () {
    var req = {
        method: 'GET',
        url: '/app/scripts/script.php',
    };
    return $http(req);
}

尽量不要自定义Request标头。这应该解决403 Forbidden Issue。

答案 1 :(得分:0)

好吧我明白了。由于我的.htaccess文件中的这一行,我得到了403:

Options FollowSymLinks