데이터를 다시 보내지 않고 데이터베이스에 저장할 수 없습니다. 나는 심지어 이해할 수 없다. 왜 내 페이지가 다시로드되는지. 여기 페이지를 새로 고침하지 않고 아약스로 데이터를 보내려면 어떻게해야하나요? (Nodejs)
<form action="/user/change" method="post">
Name: <input type="text" id="name" name='profile_name' value="{{myName}}">
Surname: <input type="text" id="surname" name="profile_surname" value="{{mySurname}}">
Age: <input id="profile_age" name="age" type="text" value="{{myAge}}">
<input type="hidden" name="_csrf" value='{{csrfToken}}'>
<input type="submit" value="Send" id="send_profile">
</form>
내 아약스 스크립트입니다 : 내가 아무 생각이 없다, 나는 내 문제를 해결할 수있는 방법 ... 여기
은 내 양식이다
$('#send_profile').click(function() {
$.ajax({
global: false,
type: 'POST',
url: /user/change,
dataType: 'html',
data: {
name: $("#profile_name").val(),
surname: $("#profile_surname").val(),
age: $("#profile_age").val()
},
success: function (result) {
console.log(result);
},
error: function (request, status, error) {
serviceError();
}
});
});
그리고 내 Node.js를 요청 핸들러 :
router.post('/change', function (req, res) {
var name = req.body.name,
surname = req.body.surname,
age = req.body.age
User.findOneAndUpdate({_id: req.user._id}, {$set:{name: name, surname: surname, age: age}}, {new: true}, function(err, doc){
if(err){
console.log("Something wrong when updating data!");
}
console.log(req);
console.log('req received');
res.redirect('/user/'+req.user._id);
});
});
URL을에
자세한 정보는 문자열이어야합니다. url : '/ user/change', –