【问题标题】:Request that does absolutely nothing完全不执行任何操作的请求
【发布时间】:2020-09-10 00:36:22
【问题描述】:

我正在尝试制作一个按钮来触发呈现登录页面的请求。我想将登录页面限制为仅限我项目的管理员。我有他们的 IP 地址,并使用这些地址与数据库中的 IP 地址进行核对。如果 ip 匹配,我希望呈现登录页面,但如果它不匹配,那么我希望页面保持原样。我不希望页面重新加载或页面重定向。我想要它,就像按钮根本不工作一样。该页面不应尝试获取响应。

我想要这样的东西-

我有一个提交表单的按钮,它包含用户的 ip。

app.post("/something",function(req,res){
  Admins.findOne({userIP:req.body.userIP},function(err,foundItem){
     if(!err){
       if(foundItem){
         res.render("login");
       }else{

       }
  });
});

我不确定else 部分需要输入什么代码。 res.end() 对我不起作用,因为如果我使用它,则会显示空白页。我希望页面保持原样并保持原样。

请大家帮忙!提前致谢。

【问题讨论】:

  • 这似乎是一种不寻常的方法。通常,您会将登录页面显示给 所有 用户,然后可能只允许具有某些凭据的管理员登录。为什么要像这里一样走使用IP白名单/黑名单的路线?
  • 如果您一开始就知道 IP,那么最好阻止任何 IP 加载给其他用户。这可以在许多层面上实施。最简单的方法是将您的网络服务器(apache/nginx/others)配置为仅允许来自某些 IP
  • @Tim 我有一个用于管理数据库的 GUI。呈现给所有用户的登录页面将毫无用处,因为他们与它无关。如果页面对所有人开放,也会引发安全问题。

标签: javascript node.js mongodb ejs


【解决方案1】:

首先这不是 node js 的问题。这是正常的表单提交和基本的 html 内容。 其次,当您点击提交按钮时会自动刷新client 页面并等待来自server 的新渲染页面。

所以基本上你需要做的是呈现你已经实现了带有 action 属性的表单的同一页面。

(或)

您必须使用 javascript 函数在 Form 标记中添加 onsubmit 属性,您需要在其中调用节点 js api,在节点 js 中您需要 res.send({status:true (or) false}),当您从 api 调用 response 时,您有条件地留下或进入登录页面。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-11
    • 2021-01-28
    相关资源
    最近更新 更多