gpt4 book ai didi

javascript - Ajax 无法与 Node js 一起使用 - Express js

转载 作者:行者123 更新时间:2023-12-01 03:51:21 25 4
gpt4 key购买 nike

我尝试使用ajax将数据从服务器端发送到客户端,但是当我在 Node 中使用res.send(data)时,它向我显示一个带有数据的空html,我想从客户端获取数据无需重新加载页面并在我的实际 html 中编辑某些内容

这是我的服务器端代码

    app.post('/',(req,res)=>{
var userName = req.body.username;
var password = req.body.password;

connection.query('SELECT * from admin',(err, rows, fields)=> {
if (!err){
if((userName == rows[0].usuario) && (password == rows[0].contraseña)){
res.sendStatus(200);

}else{
res.send('Incorrect username or password')
}
}else{
res.send('Error while performing Query.');
}

});

});

这是我的客户端代码

$(document).ready(function(){
$('#login-form').submit(function (e) {
setTimeout(function () {
e.preventDefault();
$.ajax({
type: 'POST',
url: '/',
dataType: 'jsonp',
data: ({username: $('input[name=username]'),password: $('input[name=password]')}),
success: function(data,textStatus){
if(textStatus.statusCode == 200) {
$('.error-user').html('Succes');
}else{
$('.error-user').html('Not Success');
}


},
});
}, 1000);

});
});

更新:我删除了 setTimeOut(),但是当我提交表单时,页面卡住了两秒,然后什么也没有发生,我收到此“错误超出了最大调用堆栈大小”,不要让我的数据停留在其中如果从未调用过类似的 post 方法,则会出现相同的 View

最终更新:我从ajax之外的输入中获取了值,它工作得很好,谢谢:#

最佳答案

删除setTimeout,它会阻止您的preventDefault在实际事件处理程序中运行,并导致您在浏览器加载而不是ajax处理程序中看到响应,并从那里进行调试。

关于javascript - Ajax 无法与 Node js 一起使用 - Express js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43164256/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com