我試着從我的服務器端發送的數據與阿賈克斯我的客戶端,但是當我使用節點res.send(數據),它顯示我的數據空html和我想從我的客戶端數據,而無需重新加載頁面,並在我的實際HTML阿賈克斯不能與節點JS工作 - 快遞JS
這裏編輯的東西是我的服務器端代碼
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方法從來沒有所謂
UPDATE決賽:我得到了阿賈克斯之外的輸入值和它的作品很好,謝謝:#
添加錯誤處理程序Ajax調用。它也看起來像你不回發jsonp – epascarello
你爲什麼使用'setTimeout()'?這是問題的一部分。你的表單已經提交,並且在你運行你的ajax調用之前,在你調用'e.preventDefauilt()'之前,表單提交就會重新加載頁面,所以調用的時間太晚了。除去'setTimeout()'或在'setTimeout()'之前放置'e.preventDefault()'。在任何一種情況下,'setTimeout()'看起來都像是一團糟的代碼。如果你認爲你正在修復某些東西,那麼這是一個黑客攻擊,你應該修正它的正確方法,並刪除'setTimeout()'。 – jfriend00
外觀更新問題 –