node.js - 提交用户输入的发布请求时出现 403 错误
问题描述
我有一个带有电子邮件和密码字段的注册页面。我还有一个用户端script.js
文件,它检测输入字段的值并通过“发布”请求发送它们。
但是,当我输入这两个字段并单击sign up
时,终端会显示POST /user/signup 403
并且浏览器会一直加载直到超时。似乎有什么东西阻止了代码访问路由,但我不知道是什么。
我正在express-validator 6.0.1
使用passport.js
.
非常感谢您的帮助。谢谢。
脚本.js:
$('#signup-btn').click(function () {
$.ajax({
url: '/user/signup',
type: 'POST',
cache: false,
data: {
email: $('#email').val(),
password: $('#password').val()
},
success: function () {
$('#error-group').css('display', 'none');
alert('Successfully signed up');
},
error: function (data) {
$('#error-group').css('display', 'block');
var errors = JSON.parse(data.responseText);
var errorsContainer = $('#errors');
errorsContainer.innerHTML = '';
var errorsList = '';
for (var i = 0; i < errors.length; i++) {
errorsList += '<li>' + errors[i].msg + '</li>';
}
errorsContainer.html(errorsList);
}
});
});
路线:
router.post("/user/signup",
[
check('email', 'Your email is not valid').not().isEmpty().isEmail().normalizeEmail(),
check('password', 'Your password must be at least 5 characters').not().isEmpty().isLength({min: 5})
],
function (req, res) {
const errors = validationResult(req);
console.log(req.body);
if (!errors.isEmpty()) {
return res.status(422).jsonp(errors.array());
} else {
passport.authenticate("local.signup", {
successRedirect: "/user/profile",
failureRedirect: "/user/signup",
failureFlash: true
});
}
});
router.get("/user/profile", (req, res, next) => {
res.render("user/profile");
});
解决方案
推荐阅读
- batch-file - 执行 mvn 调用后批处理 for 循环更改行为
- openmdao - OpenMDAO 中的 MDO 架构
- android - 是否有必要在 google play 上建立索引应用程序
- javascript - SequelizeDatabaseError:Koa.js 框架中不存在关系“用户”
- prometheus - Prometheus blackbox-exporter ICMP ping 监控配置所有目标都显示出来
- java - Spring Session JDBC - 使用 @Autowired 对象时出错
- r - papaja 中的 Pandoc 不会解码字节 \xc6
- ios - 旧版本的 swift 可以与新的 iOS 版本一起使用吗?
- sql-server - 对外键引用的表进行分区
- javascript - 到达部分时从垂直滚动更改为水平滚动