angularjs发布要表达4返回错误的请求400

阿德里安·阿丹(Adrian Adaine)

这是有关发布angularjs来表达4.0的问题

我遵循了有关MEAN堆栈的复数形式的课程。我从课程老师的github获得了源代码(https://github.com/joeeames/multivision-demo)。您可以在此处找到以下代码行:https : //github.com/joeeames/multivision-demo/blob/master/public/app/account/mvAuth.js

 authenticateUser: function(username, password) {
  var dfd = $q.defer();
  $http.post('/login', {username:username, password:password}).then(function(response) {
    if(response.data.success) {
      var user = new mvUser();
      angular.extend(user, response.data.user);
      mvIdentity.currentUser = user;
      dfd.resolve(true);
    } else {
      dfd.resolve(false);
    }
  });
  return dfd.promise;
},

现在,如果您按原样安装/安装项目,则一切正常(在package.json中,您看到“ express”:“〜3.4.4”)。如果将其更新为Express 4.0并提供Express 4.0的要求(例如,将正文解析器,cookie解析器等分开),则会出现问题:如果尝试登录,则上述各行将产生错误(400错误的请求,来自Angularjs传递给Passport.authenticate())。升级为Express 4.0后,我的LocalLocalegegy护照将永远不会被调用。不幸的是,我没有足够的知识来使用诸如wirehark之​​类的工具或其他工具来检查发布之间的http的详细信息,以期找到答案。谁能给我一个想法,请升级到Express 4.0后如何使它工作?

tur

仅此一点是无济于事的。您需要Content-Type为主体解析器指定

app.use(bodyParser.json({ type: 'application/*+json' }))

并确保客户端正在使用that Content-Type,对于您而言,这是可以的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章