如何在服务器端杀死以前的ajax请求?

时间:2013-09-17 07:22:39

标签: java javascript jquery ajax tomcat

我正在使用 JQuery 1.9.1 。这个问题可能与以前的一些问题有可能重复。但这些问题已经过时了。所以我需要一个最新的解决方案。

对于我的java应用程序,我每隔tomcat server通过10 secJQuery-Ajax发送一个连续请求,以获取数据,

function startPolling(){

    $.ajax({
        type: "POST",
        cache: false,
        url: "My URL",
        dataType: "html",
        timeout: 10000,

        success: function(response) {                       
            if(response != null && response !="" && response !="null")
                $("#sucess").html(response);
        },
        error: function(xhr) {
            xhr.abort();
            //alert('Error: ' + e);
        },

        complete: function(xhr, status) {
            xhr.abort(); 
            startPolling();
        },
    });
}

请确保abort/cancel client side以前的server side request processing请求正确。

另外如何在通过ajax发送新请求之前中止{{1}}。

希望我们的堆栈用户能帮助我。

1 个答案:

答案 0 :(得分:1)

客户端中有一个错误在这里中止

var pollXhr;
function startPolling(){
    if(pollXhr){
        pollXhr.abort()
    }

    pollXhr = $.ajax({
        type: "POST",
        cache: false,
        url: "My URL",
        dataType: "html",
        timeout: 10000,

        success: function(response) {                       
            if(response != null && response !="" && response !="null")
                $("#sucess").html(response);
        },
        complete: function(xhr, status) {
            pollXhr = null;
            startPolling();
        },
    });
}

注意:这不会停止服务器端处理