Javascript AngularJS可以';t向SLIM框架发送POST请求

Javascript AngularJS可以';t向SLIM框架发送POST请求,javascript,php,angularjs,Javascript,Php,Angularjs,您好,我有一个angularjs http.post()请求到slim php框架 'use strict'; soup.factory('loginService',function($http){ return { login:function(user){ console.log(user); var $promise = $http.post('api/vendor/slim/

您好,我有一个angularjs http.post()请求到slim php框架

  'use strict';

   soup.factory('loginService',function($http){
    return {
        login:function(user){
                         console.log(user);

            var $promise = $http.post('api/vendor/slim/slim',user );
            return $promise;
    };
});
当我调试
$\u POST
时,它总是返回一个空数组

但是当我使用
json\u解码(file\u get\u contents('php://input“)
,slim php将返回一个错误

这是处理请求的php函数

function login(){
    $sql = "SELECT * FROM users ORDER by id";
     try {
        $db = getConnection();
        $stmt = $db->query($sql);
        $users = $stmt->fetchAll(PDO::FETCH_OBJ);
        $db = null;
        //print_r($users);
        $users = json_encode($users);


    } catch(PDOException $e) {
        echo '{"error":{"text":'. $e->getMessage() .'}}';
    }

    var_dump($_POST);
    $test = json_decode(file_get_contents('php://input'));

    //do something with the post data



}
如何解决这个问题?

api说:

params–{Object.}–字符串或对象的映射 将在url后变为?key1=value1&key2=value2。 如果该值不是字符串,它将被JSONified。

尝试以字符串形式发送数据,如下所示:

var $promise = $http({
    url: 'api/vendor/slim/slim',                                                method: 'POST',
    data: 'user=' + usr + '&password=' + pwd,
    headers: {'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'}
});

别忘了包括
内容类型
标题。

我喜欢这样的问题:“我有一个错误。请帮我调试!”(但你永远看不到这个错误:)