简体   繁体   中英

How use the success call back in a delete ajax [NODE.JS]

I'm using the following code to delete a collection in my db:

Client:

$('.destroy').click(function() {

    if(confirm("Are u sure?")) {
        $.ajax({
            type: 'DELETE',
            url: '/destroy/' + dataId,
            success: function(response) {
                console.log('Success');
            }
        });
    } else {
        alert('Cancelled');
    }
});

Server:

app.get('/destroy/:id', function(req, res) {
    var id = req.param("id");

    MyModel.remove({
        _id: id 
    }, function(err){
        if (err) {
            console.log(err)
        }
        else {
            console.log('Collection removed!');
        }
    });
});

Is working, if i click in the destroy button and reload the page, the collection will not be there, but the success callback function with the: [console.log('Success');] is not running..

I need send a callback from the server to the client ir order to make the success function run???

How make the console.log('Success'); run??

Thanks.

The ajax call probably just times out, as it's never getting a response back from the server.

Send a response from the server

app.get('/destroy/:id', function(req, res) {
    var id = req.param("id");

    MyModel.remove({
        _id: id 
    }, function(err){
        if (err) {
            res.end('error');
        }
        else {
            res.end('success');
        }
    });
});

Then catch it

$.ajax({
    type    : 'DELETE',
    url     : '/destroy/' + dataId,
    success : function(response) {

       if ( response === 'error' ) {

           alert('crap!');

       } else if (response === 'success' ) {

           alert('worked fine!');

       }

    }
});

This is a simplified example, you can return whatever you like, send statusCodes or whatever.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM