防止双重/重复HTTP请求

时间:2016-08-03 14:31:48

标签: javascript node.js http mean-stack

我刚刚意识到这一点,我无法相信我之前没有看到这一点。这似乎是常识,我无法相信我是个白痴。

基本上我已经意识到,在我的MEAN Stack应用程序中执行 HTTP POST 请求的任何按钮上双击会产生2个请求和数据重复。< / p>

如何防止重复数据?我想处理这个服务器端,因为它看起来更安全可靠,但任何客户端解决方案也会有所帮助。

我已经阅读过关于SO的问题,其中讨论了使用 GUID 来防止这种情况,但我无法理解它们的含义以及如何实现它。

1 个答案:

答案 0 :(得分:0)

创建会话变量特定于用户。

在服务器上,最初创建会话变量: -

req.session.flag = 0

在您的帖子中间件中: -

router.post('/url',function(req,res,next){
  if(req.session.flag) res.send({data:'second time accessed'});
  else {
    req.session.flag = 1;
  //your code here 
  }
})

在用户退出时或根据您的需要销毁会话