Ответ 1
Я работал с моей стороной Angular с $window.location.href = '/forum';
- просто положил ее в функцию успеха запроса $http
, которая является частью функции delete
, которая запускается, когда кнопка "Удалить" щелкнул.
Я искал все для того, как это сделать - я пытаюсь перенаправить после запроса DELETE - вот код, который я использую БЕЗ ПРЯМОГО:
exports.remove = function(req, res) {
var postId = req.params.id;
Post.remove({ _id: postId }, function(err) {
if (!err) {
console.log('notification!');
res.send(200);
}
else {
console.log('error in the remove function');
res.send(400);
}
});
};
remove
вызывается, когда элемент (сообщение) удаляется. Все работает нормально (мне пришлось использовать res.send(200)
, чтобы он не зависал в запросе на удаление) - но теперь у меня проблемы с перенаправлением. Если я использую res.redirect('/forum')
внутри функции remove
, например:
exports.remove = function(req, res) {
var postId = req.params.id;
Post.remove({ _id: postId }, function(err) {
if (!err) {
console.log('notification!');
res.send(200);
}
else {
console.log('error in the remove function');
res.send(400);
}
res.redirect('/forum');
});
};
Он регистрирует перенаправление как запрос DELETE
, который пытается удалить /forum
, например:
DELETE http://localhost:9000/forum 404 Not Found 4ms
Все, что я пытаюсь сделать, это обновить страницу, чтобы список сообщений обновлялся после удаления. Может ли кто-нибудь помочь?
Я работал с моей стороной Angular с $window.location.href = '/forum';
- просто положил ее в функцию успеха запроса $http
, которая является частью функции delete
, которая запускается, когда кнопка "Удалить" щелкнул.
Я знаю, что это поздно, но для тех, кто видит это позже, вы также можете вручную reset использовать метод HTTP для GET, который также должен работать
exports.remove = function(req, res) {
var postId = req.params.id;
Post.remove({ _id: postId }, function(err) {
if (!err) {
console.log('notification!');
res.send(200);
}
else {
console.log('error in the remove function');
res.send(400);
}
//Set HTTP method to GET
req.method = 'GET'
res.redirect('/forum');
});
};
Решение @ewizard отлично, если вы можете исправить это на лицевой стороне. Однако, если вы хотите исправить это на задней панели, вы можете добавить необязательный аргумент кода состояния в res.redirect
следующим образом:
res.redirect(303, "/forum");
Это перенаправляет для "Undefined Причина", которая по умолчанию будет перенаправлена GET.
Подробнее см. этот пост..