簡體   English   中英

從節點服務器向 ajax 發送數據

[英]send data to ajax from node server

我需要檢查用戶輸入的令牌是否存在,

我的節點 js controller:

const checktoken = async (req, res) => {
    const token = req.body.token

    User.findOne({'token': token }).then((user) => {
        if (user) {
            return res.end("GOOOOD");
        }
        return res.end("Baad");
    })
    .catch((err) => console.log(err))   
}

Ajax側:

$(document).ready(function(){
    $('#form').submit(function (e) {
        // e.preventDefault()

        $.ajax({
            type: 'POST',
        url: '/api/token/'
        })
        .done(function(data) {
            alert(data)
        })
        .fail(function(xhr, status, error) {
            console.log("Errrrrrr       " + error);
        })
        .always(function(data){
        });
    })
})

html 形式:

<form class="form-inline search-form"  action ="/api/token" method="POST" id="form">
    <div class="form-group label-floating">
        <input name ="token" id="token" >
    </div>

    <button id="subBut" type ="submit"> Verify  </button>
</form>

問題是無論何時我總是收到警報(BAD token),然后以文本格式打印另一頁,結果良好

例如,如果我放好令牌:警報是壞令牌,然后打印另一頁:好令牌(這意味着節點的結果是好的) AJAX 的問題

首先,您是雙重提交,因為您的form將提交,而您的ajax調用也會觸發。 更改form上的操作以確保它不會嘗試自行發布(或者,您可以在提交處理程序中取消注釋e.preventDefault )。 此外,您沒有在 ajax 調用中包含任何數據:

<form class="form-inline search-form" action ="javascript:void(0)" id="form">
    <div class="form-group label-floating">
        <input name ="token" id="token" >
    </div>

   <button id="subBut" type ="submit"> Verify  </button>
</form>
$(document).ready(function(){
    $('#form').submit(function (e) {
    // e.preventDefault()

        $.ajax({
            type: 'POST',
            contentType: 'application/json',
            url: '/api/token/',
            data: JSON.stringify({ token: $('#token').val() })
        })
        .done(function(data) {
            alert(data)
        })
        .fail(function(xhr, status, error) {
            console.log("Errrrrrr       " + error);
        })
        .always(function(data){
        });
    })
})

您尚未包含您的 Express 設置代碼,但這需要行app.use(Express.json())或( express.json()取決於您命名導入的名稱)以便將正文從 JSON 解析為一個 object

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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