Javascript 为什么这个AJAX调用没有重定向到`/login`URL?

Javascript 为什么这个AJAX调用没有重定向到`/login`URL?,javascript,node.js,ajax,express,express-handlebars,Javascript,Node.js,Ajax,Express,Express Handlebars,我正在制作一个带有把手的Node Express应用程序 我在控制台中打印了一条成功消息,但URL没有更改为/login,因此页面永远不会呈现,尽管当我在浏览器中手动键入URLlocalhost:3000/login时,我可以看到呈现的登录页面 因此,我想知道为什么AJAX不起作用 索引把手: 登录 login.handlebar: index.js: const baseUrl='1〕http://localhost:3000'; $([id='login'])。单击(函数(){ $.a

我正在制作一个带有把手的Node Express应用程序

我在控制台中打印了一条成功消息,但URL没有更改为
/login
,因此页面永远不会呈现,尽管当我在浏览器中手动键入URL
localhost:3000/login
时,我可以看到呈现的登录页面

因此,我想知道为什么AJAX不起作用

索引把手

登录
login.handlebar


index.js

const baseUrl='1〕http://localhost:3000';
$([id='login'])。单击(函数(){
$.ajax({
url:`${baseUrl}/login`,
方法:“GET”,
成功(){
console.log('success');
},
错误(e){
控制台日志(e);
}
});
});
路由文件:

router.get('/login',函数(req,res)=>{
试一试{
res.render(“登录”);
}
捕获(e){
res.status(401).json({
消息:“失败”
});
}
});

Ajax调用只向服务器发送一个请求,并将响应返回到Javascript。它本身不会更改浏览器窗口中的任何内容。如果您想在ajax调用后转到
/login
页面,则可以通过在浏览器Javascript中设置
window.location=“/login”
,告诉浏览器转到
/login

但是,看起来您真正想要做的是更改窗口位置,而不是使用ajax调用,因为ajax调用本身除了呈现登录表单之外什么都不做

const baseUrl = 'http://localhost:3000';

$("a[id='login']").click(function(){
      // now render the login page
      window.location = "/login";
   });
});

但是,由于所有这一切都是为了将浏览器发送到一个新的网页,你甚至不需要Javascript,你也可以在你的网页中使用
登录名

是的,在这里我只想更改位置,但在一些路径中,如post,我想发送数据,因此我写了如下it@Vinita-嗯,关键是发送Ajax请求根本不会改变浏览器中显示的内容。如果要在Ajax调用后更改浏览器中的内容,则必须在自己的Javascript中进行更改,方法是设置
window.location
,或者在当前显示的页面中插入新内容。好的,谢谢