我有一個設置頁面,您可以插入和刪除一些過濾器。對於刪除請求我用這個:Node.Js承諾重定向不起作用
$('#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;
}
});
這裏是我的這個頁面路徑:
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);
})
})
基本上我想重定向到頁面設置,因此用新的數據重新加載頁面。但是在承諾鏈中我不能使用任何響應函數。我使用重定向錯誤嗎?或者我無法在承諾鏈中發送回覆?
我想知道,你在哪裏得到了OP尋找的提示「瀏覽器應該將此URL作爲新頁面顯示」?我的意思是,他使用ajax =/ – Salketer
@Salketer - Quote:「本質上我想重定向到頁面設置,所以**頁面重新加載**新數據」 – Quentin
我已經嘗試'res.send({ href:「/ settings」});'而不是'res.redirect('/ settings')'。正如你所說的,我在成功方法中使用了location.href,但頁面沒有重新加載。它保持加載,沒有任何反應。 –