zoukankan      html  css  js  c++  java
  • 如何终止正在在发送的ajax请求

    核心:调用XMLHttpRequest对象上的abort方法

    jquery的ajax方法有自己的超时时间设置参数:

    $.ajax({type:'POST',
        url:'b.php',
        data:'',
        timeout:5000,
        success:function(){
            
        }
    })
    同时
    1. $.get返回的数据类型是XMLHttpRequest,请参考手册。($.post、$.ajax、$.getJSON、$.getScript也同样)

    2. XMLHttpRequest对象有abort()方法 

    也可以自己手动去调用abort方法:

    <script src = "jquery-1.4.4.js"></script>
    <script>
    var xhr = $.ajax({type:'POST',
        url:'b.php',
        data:'',
        success:function(){
            alert('ok');
        }
    })
    alert(xhr);
    
    console.log(xhr);
    </script>
    <button id="song">abort</button>
    <script>
    $(function(){
        $("#song").click(function(){
            alert('click');
            xhr.abort();
        })
    })
    </script>

    对于原生的xhr:

    xmlHttp.open("POST","theUrl",true);
    xmlHttp.onreadystatechange=function(){
        ...//得到响应之后的操作
    }
    xmlHttp.send();
    //设置8秒钟后检查xmlHttp对象所发送的数据是否得到响应.
    setTimeout("CheckRequest()","8000");
    
    function CheckRequest(){
       //为4时代表请求完成了    
        if(xmlHttp.readyState!=4){
            alert('响应超时');
            //关闭请求
            xmlHttp.close();
        }
    }
  • 相关阅读:
    Ruby(1):入门
    html 制作静态页面新知识
    mysql 可视化界面操作指令
    html 基础
    Eclipse导入Java工程导入错误
    shell 25个常用命令
    java JDBC
    java 8新特性 instant
    git
    spring mvc 注解详解
  • 原文地址:https://www.cnblogs.com/siqi/p/2798093.html
Copyright © 2011-2022 走看看