javascript - nodejs对ajax的响应不在同一页面上打印
问题描述
我是 nodejs 的初学者,我正在尝试将 nodejs 的响应发送到客户端的 ajax。一切正常,但问题是在客户端收到响应时,会打开一个新页面并且响应显示在该页面上。这意味着ajax的核心功能没有实现。我希望 ajax 响应显示在同一页面上。请帮忙!!下面是我的服务器代码:
app.post('/auth',function(req, res){
console.log(req.body);
var username=req.body.username;
var password=req.body.password;
var obj={};
if(username&&password){
connection.query('select * from signup where username=? and password=?',[username,password],function(err, result){
if(err) throw err;
if(result!=0)
{
req.session.loggedin=true;
req.session.username=username;
return res.redirect('/home');
}
obj={'message':'Incorrect Username and/or Password'};
obj=JSON.stringify(obj);
res.send(obj);
});
}
});
这是我的客户端代码。我希望将响应显示在 ID 为“wrongdetail”的标签内,但它正在打印在另一页上。下面是我的 jquery ajax 调用:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.0/jquery.min.js"></script>
<script type="text/javascript">
$(function(){
$('#submitbut').click(function(){
$.ajax({
type: 'POST',
dataType: 'json',
url: 'http://localhost:3000/auth',
success: function(response) {
$('#wrongdetail').html("<b>"+response.message+"</b>");
}
});
});
});
</script>
<!DOCTYPE html>
<html>
<head>
<title>Login page</title>
</head>
<body>
<div class="login-form">
<h3>Sign In</h3>
<form action="auth" method="post" class="form-content">
<label for="username"><b>Username</b></label>
<input type="text" name="username" placeholder="Enter Username ..." id="usernm" required>
<label for="password"><b>Enter Password</b></label>
<input type="password" name="password" placeholder="Enter Password ..." id="passwd" required>
<label for="wrong" id="wrongdetail"></label>
<button id="submitbut">Login</button>
</form>
</div>
</body>
</html>
解决方案
推荐阅读
- mysql - MySQL 在特定条件下返回最新和最长的连续行
- firebase - 为什么我会收到未经授权的 Firebase 存储错误?
- reactjs - 在嵌套数组上反应映射
- r - 如何在图形标题中打印矢量?
- azure-cosmosdb - cosmos DB - 需要每个逻辑分区图表的“逻辑分区”计数和项目数
- python - 如何使用 C API 构造一个 decimal.Decimal 对象?
- python - rioaxrray 打开 netcdf 文件结果是列表而不是 xarray
- python - 将 timedeltas64[ns] 中给出的时间序列数据转换为 datetime64[ns]
- java - 计算前缀和后缀和的直觉
- c# - 无法在 Visual Studio 和 MonoGame 的全新安装上运行 MonoGame 项目