$ http.get应该如何工作,我总是从PHP得到答案

时间:2014-09-21 22:19:59

标签: ajax angularjs get file-get-contents

正如我在标题中所写,我无法从PHP获得任何正确的答案。任何人都有任何想法?

的Javascript

var app = angular.module("appMovies", []);


app.controller("listMovies", ["$scope", "$http", function($scope, $http){

    getMovies($http);

}]);


function getMovies(_http){

    _http.get("movies.php", {data:{"getList":"LISTA"}})
        .success(function(data, status, header, config){
            console.log( data );
        })
        .error(function(data, status, header, config){
            //console.log(data, status, header, config);
        });

}

PHP

var_dump( file_get_contents("php://input") );

所以,我明白了...对不起我的坏。显然$ _GET只从URL获取数据,所以我应该写

$http.get("movie.php/?getList=LISTA")...

2 个答案:

答案 0 :(得分:1)

看起来你正在混合GET和POST请求。要在Angular / PHP中使用GET,您需要使用params(查询字符串参数)而不是data(对于POST正文)和服务器上的_$GET(对于查询字符串参数)而不是file_get_contents("php://input")(它给POST主体)。

所以在浏览器中,类似

_http.get("movies.php", {params: {"getList":"LISTA"}})

并在服务器上

var_dump($_GET);

答案 1 :(得分:0)

以另一种方式尝试:

$http.post("movies.php", {data: {"getList": "LISTA"}}).
        success(function (_data, _status) {
        })
        .error(function (_data, status) {
        });

在您的PHP代码中,您可以使用:

$postData = file_get_contents("php://input");
$request = json_decode($postData);
$request->_data;