2015-06-15 39 views
0

我有一个按钮应该执行'/ index'的获取请求。 然后我的页面应该通过一个路由方法调用getIndex,它应该呈现index.html。按钮onclick获取请求调用getIndex()

<div> 
     <script> function goToHome(){ 
      $.get("/index"); 
     } 
     </script> 

     <button type="button" onclick="goToHome()"> 
      Go to the dashboard! 
     </button> 
    </div> 

router.get('/index', Routemethods.getIndex); 

exports.getIndex = function(req, res){ 
    res.render('index.html'); 
} 

但是,请求已完成,getindex正在被调用(记录下来看它是否确实如此)。问题是我的页面没有被重新加载到index.html。我究竟做错了什么?我使用href做了工作,但不是那种方法的忠实粉丝。

+0

如果您通过url导航,则最好通过hrefs进行导航,而不是让js执行请求。这会优雅地降低,即使j因某些原因无法正常工作,用户也能够浏览您的网站。 – Juank

+0

我认为您需要使用像Jade这样的渲染引擎 –

+0

我使用的渲染引擎是ejs,并且在通过url执行获取请求时工作正常,但我并不想通过url导航(因为在用户需要输入url本身) 或者如下所示,仍然可以使用某种按钮来完成它?就像我可以在论坛上点击我的个人资料一样。 – Nils

回答

0

你还没有指定,如果这是浏览器上的节点或jQuery。这看起来像一个阿贾克斯调用,而不是导航。

<script> function goToHome(){ 
     $.get("/index"); 
    } 
    </script> 

这会使你的浏览器请求的页面

function goToHome(){ 
     window.location.href = '/index'; // this might need tweaking based on your servers setup, paths, etc 
    } 

但正如前面所说的,你可以用链接和正确的HREF做到这一点。除非有充分的理由,否则不应该将其卸载到按钮和js上。您正在使用更多的内存并使导航依赖于js。

+0

我希望能够浏览某种仪表板,例如“我的个人资料”和“我的出价”(用户可以获得优惠)。所以我想我会用按钮做这个。 但是不确定在这种情况下'最佳实践'是什么。明天你会试试你的建议。我已经在express/nodejs上创建了我的路由设置,并将html显示给用户。如上所述,我可以href到本地主机:3014 /索引进行导航? (现在仍然在本地托管) – Nils

+0

事实上,我可以使用href /按钮导航,所以我认为我已经整理出来了。 :) 但我明白你的意思,更好地“构建”一个按钮与CSS。谢谢! – Nils