【发布时间】:2018-12-23 09:22:46
【问题描述】:
以前可能有人问过这个问题,但我似乎找不到解决方案,如果是这种情况,我们深表歉意。
我有一个使用 express 的简单节点应用程序正在开发中。其中一个发布路由返回一个 http 204 并发送它,下面是我的代码:
router.post("/:id", function(req, res, next) {
if (!req.session.userId) {
res.status(204).send();
} else {
console.log(req.params.id);
User.findById(req.session.userId, function (err, user) {
if (err) return handleError(err);
const nameForDatabase = req.params.id + "Correct";
console.log(nameForDatabase);
user.set({[nameForDatabase]: req.body.correct});
user.save(function (err, updatedUser) {
if (err) return handleError(err);
console.log(updatedUser);
});
});
res.status(204).send();
}
});
在桌面 chrome 中,这与预期的一样,帖子更新用户数据,页面保持不变。在 iOS 中,会加载一个空白页面。
有没有办法阻止空白页出现在 iPhone/iPad 上?
提前非常感谢。
注意:https://simplenotesapp.herokuapp.com/fluids 是我要实现的目标的模型,重要的是 204 不会加载新页面,因为一旦用户回答了问题并在底部,出现正确答案。
【问题讨论】:
-
仅供参考,您的代码编写方式可以调用
res.status(204).send(),然后调用handleError(err)。我不知道handleError(err)做了什么,但如果您希望它发送错误状态,那将无法正常工作。
标签: ios node.js http express http-status-codes