zoukankan      html  css  js  c++  java
  • 一个简单的AJAX示例

    虽然现在有了框架,许多AJAX调用直接调用它们的API就可用。但有些极端情况,比如面试,比如第三方应用不想加载这些库,我们就只有自己写。这时想必有许多人要疯狂google,百度了。网上太多垃圾信息,我还是在自己博客上保存一份吧。

    我的实现:

    var ajax = new(self.XMLHttpRequest||ActiveXObject)("Microsoft.XMLHTTP")
    ajax.onreadystatechange = function(){
      if (ajax.readyState==4 && ajax.status==200){
          alert(ajax.responseText)
      }
    }
    ajax.open("POST", url, true);
    ajax.send("key=val&key1=val2");
    

    群里黑暗骑士的实现:

    Ajax = function(){
        function request(url,opt){
            function fn(){}
            var async   = opt.async !== false,
                method  = opt.method    || 'GET',
                data    = opt.data      || null,
                success = opt.success   || fn,
                failure = opt.failure   || fn;
                method  = method.toUpperCase();
            if(method == 'GET' && data){
                url += (url.indexOf('?') == -1 ? '?' : '&') + data;
                data = null;
            }
            var xhr = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP');
            xhr.onreadystatechange = function(){
                _onStateChange(xhr,success,failure);
            };
            xhr.open(method,url,async);
            if(method == 'POST'){
                xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded;');
            }
            xhr.send(data);
            return xhr; 
        }
        function _onStateChange(xhr,success,failure){
            if(xhr.readyState == 4){
                var s = xhr.status;
                if(s>= 200 && s < 300){
                    success(xhr);
                }else{
                    failure(xhr);
                }
            }else{}
        }
        return {request:request};   
    }();
    
    机器瞎学/数据掩埋/模式混淆/人工智障/深度遗忘/神经掉线/计算机幻觉/专注单身二十五年
  • 相关阅读:
    用同余理解补码
    objenesis
    spring 事务处理
    SOCKS5 协议解析
    WebSocket 的鉴权授权方案
    加密解密基础问题:字节数组和16进制字符串的相互转换
    主机字节序 与 网络字节序
    RSA 理论
    分类算法----k近邻算法
    R语言统计分析应用与SAS、SPSS的比较
  • 原文地址:https://www.cnblogs.com/rubylouvre/p/2851051.html
Copyright © 2011-2022 走看看