res.end('{"success" : "Updated Successfully", "status" : 200}');
を使用してAjaxリクエストに成功ステータスを送信しようとしていますが、このエラーが発生します。エラー:送信後にヘッダーを設定できません。基本的には、ユーザーデータがサーバーに保存されているときに、私は手動でそれをしようとする前に、私はapp.postのどこかに成功メッセージが送信されていると思うが、私は、ページを更新するajaxしたい。私は手動でそれを行うことができるように、どのように成功メッセージがajax投稿要求に送信されるのを防ぐことができます。Node.jsがAjax投稿要求に成功ヘッダーを送信するのを防ぐ方法
app.post('/signup', function (req, res) {
var userDetails = User({
username: req.body.username,
email: req.body.email,
password: bcrypt.hashSync(req.body.password1, bcrypt.genSaltSync(10))
});
User.findOne({
$or: [{
'username': req.body.username
}, {
'email': req.body.email
}]
}, function (err, user) {
if (user) {
if (allClients.indexOf(req.body.socket)) {
if (user.username === req.body.username) {
io.to(req.body.socket).emit('userInfo', 'That username is already in use.');
} else {
}
if (user.email === req.body.email) {
io.to(req.body.socket).emit('userInfo', 'That email is already in use.');
} else {
}
} else {
console.log('timeout error 822')
}
} else {
req.login(userDetails, function (err) {
if (!err) {
userDetails.save(function (err) {
if (err) throw err;
res.end('{"success" : "Updated Successfully", "status" : 200}');
res.redirect('/');
});
} else {
console.log(err)
}
})
}
if (err) {
return done(err);
}
});
});
これは私のAjaxリクエストである
$("#form1").submit(function(e) {
e.preventDefault();
$.ajax({
datatype: "json",
type: "POST",
url: '/signup',
data: $(this).serialize(),
success: function(result)
{
console.log(result);
if(result.status == 200){
window.location.reload(true);
}
}
});
});
Expressを使用していますか?もしres.status(200).send( "Updated successfully"); 'デフォルトではres.send()は200 – sgtdck