簡體   English   中英

從發布請求中獲得響應

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM