这是有关发布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后如何使它工作?
仅此一点是无济于事的。您需要Content-Type
为主体解析器指定:
app.use(bodyParser.json({ type: 'application/*+json' }))
并确保客户端正在使用that Content-Type
,对于您而言,这是可以的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句