Javascript 为什么这个AJAX调用没有重定向到`/login`URL?
我正在制作一个带有把手的Node Express应用程序 我在控制台中打印了一条成功消息,但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
/login
,因此页面永远不会呈现,尽管当我在浏览器中手动键入URLlocalhost: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
,或者在当前显示的页面中插入新内容。好的,谢谢