简而言之,我有一个登录页面,我的POST请求在Express 4中变为GET.
<form id='loginForm' action='/login' method='post'> <table> <tr> <td><input type='text' name='username' /></td> </tr> <tr> <td><input type='text' name='password' /></td> </tr> <tr> <td><button type='submit'>Submit</button></td> </tr> </table> </form>
这是我设置的路线:
// Express 4 var router = express.Router(); router.get('/login',function(req,res) { res.render('./login.hbs',{ message: req.flash('loginMessage') }); }); router.post('/login',passport.authenticate('local-login',{ successRedirect: '/welcome',failureRedirect: '/login',failureFlash : true })); passport.use('local-login',new LocalStrategy( { usernameField: 'email',passwordField: 'password',passReqToCallback : true },email,password,next) { User.findOne({ 'authLocal.email' : email },function(err,user) { console.log('Inside local-login strategy with findOne A'); [snip]
我在res.render上为GET / login和本地登录策略中的findOne()调用设置了一个断点.当我单击“提交”按钮时,捕获事物的断点位于router.get()代码中.
在调试器中,req.method是GET.
在浏览器(Chrome)中,我被告知我正在对返回302的/登录进行POST.还有一个待处理的GET /登录,带有200个代码.这两个代码(302,200)是调试器在router.get()中停止的时间.即使清除浏览器缓存也无济于事.
有人能告诉我为什么我的POST请求没有被尊重?
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。