【问题标题】:Can't access to POST parameters using expressJs with AngularJs POST Request无法使用带有 AngularJs POST 请求的 expressJs 访问 POST 参数
【发布时间】:2015-10-01 18:43:21
【问题描述】:

当我使用 Angular 进行发布请求时,我无法访问我的发布参数,这是我的 Angular 代码:

var request = $http({
                method: 'POST',
                url: '/api/login',
                data: {
                    login: 'alex',
                    password: 'test'
                }
            })
            .success(function (res, status, headers) {
                if (res.token != 'undefined'){
                    user.token = res.token;
                    user.login = credentials.login;
                    user.userid = res.userid;
                    user.islogged = true;
                    $cookieStore.put("user", user);
                }
            }).error(function(data, status, headers, config) {
                console.log(data);
            });

这是我的路由器文件中的后端代码:

/************ API ******************/
app.post('/api/login', user.login);

这是我的用户控制器的代码

exports.login = function(req, res) {

console.log(req);

var user = {
    login: req.query.login,
    password: sha1(req.query.password)
};
...
}

我在 req.query 对象中没有任何内容,否则如果我使用适用于 chrome 的 Advanced REST Client 插件提出请求,一切正常。

注意:我正在使用 body-parser 模块来读取我的请求的参数。

这里是 github 存储库:https://github.com/alex3165/numeractive/tree/dev/node

【问题讨论】:

    标签: angularjs rest post express body-parser


    【解决方案1】:

    确保启用 json 解析器

    var bodyParser = require("body-parser");    
    app.use(bodyParser.json());
    

    注意:您必须安装 body-parser 包,只需打开终端(Windows 中的命令提示符),将目录更改为项目的根目录并键入以下内容

    $ npm install body-parser --save 
    

    【讨论】:

      猜你喜欢
      • 2011-10-06
      • 1970-01-01
      • 2016-12-09
      • 2014-05-06
      • 2013-07-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多