我有一个设置页面,您可以插入和删除一些过滤器。对于删除请求我用这个: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,但页面没有重新加载。它保持加载,没有任何反应。 –