簡體   English   中英

Node.js / Express DELETE方法不起作用

[英]Node.js/ Express DELETE method not working

我正在嘗試刪除表單數據。 GET和PUT方法有效,但不能刪除。 我的目標是使用JS函數更改表單POST方法,然后使用刪除按鈕調用它,以便我可以擦除數據。 但這不起作用。 HTML:

<form id="protest_form" action="scout_post" method="POST">

            <input type="text" id="scoutName" name="scoutName" placeholder="name"> <br>
            <input type="text" id="scoutSurname" name="scoutSurname" placeholder="surname"> <br>
            <input type="text" id="scoutPassword" name="scoutPassword" placeholder="password"> <br>

            <button type="submit" id="button" class="btn btn-primary">Submit</button>
            <button type="button" id="button" class="btn btn-danger" onclick="deleteForm()">Delete</button>
        </form>

JS函數:

function deleteForm() {

        document.getElementById('protest_form').setAttribute("method", "delete");
        document.getElementById('protest_form').submit();

    }

以及節點路由:

app.post('/scout_post', urlencodedParser,function (req,res){

    var name= req.body.scoutName,
        surname=req.body.scoutSurname,
        password=req.body.scoutPassword;


            db.collection('scoutPost').insertOne(
                { 'name': name, 'surname': surname,'password':password},
                function (err, r) {
                    assert.equal(null, err);
                    res.send("Document inserted with _id: " + r.insertedId);
                }
            );  
})

app.delete('/scout_post', urlencodedParser,function (req,res){

        var name= req.body.scoutName,
            surname=req.body.scoutSurname,
            password=req.body.scoutPassword;


                db.collection('scoutPost').remove(
                    { 'name': name, 'surname': surname,'password':password},
                    function (err, r) {
                        assert.equal(null, err);
                        res.send("Document deleted");

                    });

    }) 

當我單擊調用deleteForm()函數的按鈕時,出現此錯誤:

Cannot GET /scout_post?scoutName=&scoutSurname=&scoutPassword=

而且,如果我將HTML和Node路由更改為GET方法,則將獲得插入的文檔,但單擊DEL按鈕時不會刪除該文檔。如何解決此問題? 謝謝

HTML格式僅允許GET和POST。 如果要提交DELETE請求,則必須通過XHR客戶端在服務器端使用方法重寫中間件並在客戶端進行適當的更改來提交。

正如有關MDN的文檔所述,表單方法屬性上只有“ POST”和“ GET”方法可用。 您需要使用AJAX來完成此操作

暫無
暫無

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

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