gpt4 book ai didi

ajax - 在 express 中使用新上下文重新加载页面

转载 作者:搜寻专家 更新时间:2023-10-31 23:53:57 25 4
gpt4 key购买 nike

我有一个列出事件的页面,管理员可以在其中使用 AJAX 调用删除单个项目。我想在删除事件时重新加载页面,但根据我目前对 express 通常的 req、res 和 next 的理解,我无法实现它。

这是我当前的实现(简化):

简单的 jQuery 代码:

$(".delete").click(function(e){
$.post("/events/delete",{del:$(this).val()})
})

在我的路线文件中:

function eventCtrl(req,res){
Event.find({}).exec(function(err,events){
...
var context = {
events:events,
...
}
res.render('events',context);
});
}

function deleteCtrl(req,res,next){
Event.findById(req.param("del")).exec(function(err,event){
// delete my event from google calendar
...
event.remove(function(err){
...
return next();
});
});
}

app.get('/events',eventCtrl);
app.post('/events/delete',deleteCtrl,eventCtrl);

当我使用 AJAX 发出 post 请求时,所有请求处理程序都被调用,事件被成功删除,但没有重新加载。我是否误解了 res.render() 的作用?

当我发出发布请求时,我也尝试在我的 jQuery 代码中使用成功处理程序,使用来自 deleteCtrl 的 res.redirect(),但在那种情况下我的上下文是未定义的。

最佳答案

在客户端,你正在使用

$(".delete").click(function(e){
$.post("/events/delete",{del:$(this).val()})
})

此代码不会指示浏览器在收到帖子的响应时执行任何操作。因此,浏览器中不会发生任何可见的事情。

您的问题不在服务器端;服务器用上下文对象应答。您根本没有对这个答案做任何事情。

尝试简单地添加一个 successHandler。

关于ajax - 在 express 中使用新上下文重新加载页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30578033/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com