Ajax tidak dibatalkan ketika tombol diklik

Bagaimana saya bisa membatalkan permintaan ajax ketika sebuah tombol diklik? Saya mencoba beberapa jawaban yang saya temukan di sini tetapi tidak berhasil.

<button type="button" id="toStop">Stop</button>

Ketika tombol stop diklik ajax tidak dibatalkan.

function() {
    var myajaxreq = $.ajax({
        url: myurlhere,
        type: 'GET',
        async: true,
        success: function(result) {
                            
        }
        beforeSend: function () {
            if(document.getElementById('toStop').clicked == true) {
                myajaxreq.abort();
            }
        }
    });
}

person Denver Leetrich    schedule 16.06.2020    source sumber
comment
Tidak ada properti yang diklik dan jika berfungsi, Anda hanya akan memeriksanya sebelum dikirim.   -  person epascarello    schedule 07.07.2020


Jawaban (1)


Anda memerlukan pendengar klik terpisah yang akan membatalkan permintaan ajax. Menggunakan beforeSend tidak selalu berhasil.

$('#toStop').click(function(e) {
    e.preventDefault();
    // abort here
    // make sure myajaxreq is accessible in this function
    if (myajaxreq) myajaxreq.abort();
}); 
person artfulbeest    schedule 16.06.2020