[英]getting response from post request
我正在嘗試使用 POST jQuery AJAX 進行簡單的登錄模式,但我沒有收到服務器的任何響應
客戶:
$(document).ready(function(){
$("#loginReq").click(function(){
$.post("/login",
{
uname: document.getElementById("username").value,
psw: document.getElementById("password").value
},
function(data, status, jqXHR) {
alert("Data: " + data + "\nStatus: " + status);
});
});
});
服務器:
app.post('/login', function (req, res) {
var username = req.body.uname;
var password = req.body.psw;
var i;
for (i=0; i < users.length; i++)
if (username == users[i].username && password == users[i].password)
{
console.log('found');
//res.send('OK');
//res.sendStatus(200);
res.status(200).send('OK');
break;
}
if (i == users.length)
{
console.log('not found');
res.sendStatus(300);
}
console.log('end of listener');
});
我試過 res.sent、res.end、res.statusCode、res.status.send,但是無論我在客戶端嘗試過什么,警報都不會彈出。
(我的目標是得到一個空的響應——只有狀態碼,沒有正文,但沒有任何作用)
您已經在后端定義了一個服務器,但您還沒有啟動它。 在此處查看 express 網站上的示例代碼,了解如何啟動您的服務器。
TL;DR - 嘗試將以下內容添加到服務器文件的底部:
app.listen(3000, function () {
console.log('Example app listening on port 3000!')
})
這是一個簡單的例子,我認為應該可以幫助你。
首先npm install body-parser
在您的服務器上使用 body-parser 中間件:
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
app.post('/login', (req, res)=> {
res.send(JSON.stringify(req.body));
});
在您的 jQuery 文件中,阻止表單提交 - 請注意這里的loginReq
是表單本身的一個 id:
$(document).ready(function(){
$('#loginReq').submit(function(e) {
e.preventDefault();
$.ajax({
url: '/login',
type: 'POST',
cache: false,
data: {"username": document.getElementById("username").value},
success: function(data){
alert(data);
}
, error: function(jqXHR, textStatus, err){
alert('error ' + err);
}
});
});
});
這將彈出有關您的數據的警報。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.