Ich habe eine Einstellungsseite, die Sie einfügen und einige Filter löschen können. Für Löschanfrage verwendete ich dies:Node.Js Versprechen Redirect funktioniert nicht
$('#delete-filter').click(function (e) {
var filtername = $('#filter-list').val();
var filterCount = $('#filter-list option').length;
var retVal = confirm("Are you sure to delete this filter?");
if(retVal == true){
$.ajax({
url: "/settings?filtername=" + filtername,
method: 'DELETE',
dataType: "json",
success: function (result) {
}
});
}
else{
return false;
}
});
Und hier ist meine Route für diese Seite:
router.delete('/settings', ensureAuthenticated, function (req, res, next) {
var promise = user.deleteFilter(req.session.user_id, req.query.filtername);
var promise2 = promise.then(function (data) {
req.session.selected_filter = data.selected;
res.redirect('/settings');
}, function (error) {
console.log(error);
})
})
Im Grunde möchte ich Seite Einstellungen umleiten, so dass die Seite neu geladen mit den neuen Daten. Aber in der Versprechungskette kann ich keine Antwortfunktionen verwenden. Benutze ich die Umleitung falsch? oder kann ich keine Antwort in der Versprechungskette senden?
Ich frage mich, woher hast du den Hinweis, dass OP suchte nach "Der Browser sollte diese URL als eine neue Seite anzeigen"? Ich meine, er benutzt Ajax =/ – Salketer
@Salketer - Zitat: "Im Wesentlichen möchte ich auf Seite zu Einstellungen umleiten, so ** die Seite neu geladen ** mit den neuen Daten" – Quentin
Ich habe bereits versucht, 'res.send ({ href: "/ settings"}); 'anstelle von' res.redirect ('/ settings') '. Und wie Sie sagen, ich verwende location.href bei der Erfolgsmethode, aber die Seite wird nicht neu geladen. Es wird geladen und nichts passiert. –