• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    XMLHttpRequest of ajax
    调用
    function(Url) {
      var XML = new XMLHttpRequest();
      XML.onreadystatechange = function() {
        if (XML.readyState == 4)
        {
          if (XML.status == 200)
          {
            //XML.responseText
          }
          else
          {
            //XML.statusText
          }
        }
        else
        {
          //数据加载中...
        }
      };
      XML.open("GET",Url);
      XML.send(null);
    };
    定义XMLHttpRequest 适应不同的浏览器
    // IE support
    if (window.ActiveXObject !window.XMLHttpRequest)
    {
      window.XMLHttpRequest = function()
        {
          var msxmls = new Array('Msxml2.XMLHTTP.5.0','Msxml2.XMLHTTP.4.0','Msxml2.XMLHTTP.3.0','Msxml2.XMLHTTP','Microsoft.XMLHTTP');
          for (var i = 0; i msxmls.length; i++)
          {
            try
            {
              return new ActiveXObject(msxmls[i]);
            }
            catch (e)
            {
            }
          }
          return null;
        };
    }

    // Opera support
    if (window.opera !window.XMLHttpRequest)
    {
      window.XMLHttpRequest = function()
      {
        this.readyState = 0; // 0=uninitialized,1=loading,2=loaded,3=interactive,4=complete
        this.status = 0; // HTTP status codes
        this.statusText = '';
        this._headers = [];
        this._aborted = false;
        this._async = true;
        this._defaultCharset = 'ISO-8859-1';
        this._getCharset = function()
        {
          var charset = _defaultCharset;
          var contentType = this.getResponseHeader('Content-type').toUpperCase();
          val = contentType.indexOf('CHARSET=');
          if (val != -1)
          {
            charset = contentType.substring(val);
          }
          val = charset.indexOf(';');
          if (val != -1)
          {
            charset = charset.substring(0, val);
          }
          val = charset.indexOf(',');
          if (val != -1)
          {
            charset = charset.substring(0, val);
          }
          return charset;
        };

        this.abort = function()
        {
          this._aborted = true;
        };

        this.getAllResponseHeaders = function()
        {
          return this.getAllResponseHeader('*');
        };

        this.getAllResponseHeader = function(header)
        {
          var ret = '';
          for (var i = 0; i this._headers.length; i++)
          {
            if (header == '*' || this._headers[i].h == header)
            {
              ret += this._headers[i].h + ': ' + this._headers[i].v + '\n';
            }
          }
          return ret;
        };

        this.getResponseHeader = function(header)
        {
          var ret = getAllResponseHeader(header);
          var i = ret.indexOf('\n');
          if (i != -1)
          {
            ret = ret.substring(0, i);
          }
          return ret;
        };

        this.setRequestHeader = function(header, value)
        {
          this._headers[this._headers.length] = {h:header, v:value};
        };

        this.open = function(method, url, async, user, password)
        {
          this.method = method;
          this.url = url;
          this._async = true;
          this._aborted = false;
          this._headers = [];
          if (arguments.length >= 3)
          {
            this._async = async;
          }
          if (arguments.length > 3)
          {
            opera.postError('XMLHttpRequest.open() - user/password not supported');
          }
          this.readyState = 1;
          if (this.onreadystatechange)
          {
            this.onreadystatechange();
          }
        };

        this.send = function(data)
        {
          if (!navigator.javaEnabled())
          {
            alert("XMLHttpRequest.send() - Java must be installed and enabled.");
            return;
          }
          if (this._async)
          {
            setTimeout(this._sendasync, 0, this, data);
          }
          else
          {
            this._sendsync(data);
          }
        };

        this._sendasync = function(req, data)
        {
          if (!req._aborted)
          {
            req._sendsync(data);
          }
        };

        this._sendsync = function(data)
        {
          this.readyState = 2;
          if (this.onreadystatechange)
          {
            this.onreadystatechange();
          }
          var url = new java.net.URL(new java.net.URL(window.location.href), this.url);
          var conn = url.openConnection();
          for (var i = 0; i this._headers.length; i++)
          {
            conn.setRequestProperty(this._headers[i].h, this._headers[i].v);
          }
          this._headers = [];
          if (this.method == 'POST')
          {
          // POST data
            conn.setDoOutput(true);
            var wr = new java.io.OutputStreamWriter(conn.getOutputStream(), this._getCharset());
            wr.write(data);
            wr.flush();
            wr.close();
          }
          // read response headers
          // NOTE: the getHeaderField() methods always return nulls for me :(
          var gotContentEncoding = false;
          var gotContentLength = false;
          var gotContentType = false;
          var gotDate = false;
          var gotExpiration = false;
          var gotLastModified = false;
          for (var i = 0; ; i++)
          {
            var hdrName = conn.getHeaderFieldKey(i);
            var hdrValue = conn.getHeaderField(i);
            if (hdrName == null hdrValue == null)
            {
              break;
            }
            if (hdrName != null)
            {
              this._headers[this._headers.length] = {h:hdrName, v:hdrValue};
              switch (hdrName.toLowerCase())
              {
                case 'content-encoding': gotContentEncoding = true; break;
                case 'content-length' : gotContentLength = true; break;
                case 'content-type' : gotContentType = true; break;
                case 'date' : gotDate = true; break;
                case 'expires' : gotExpiration = true; break;
                case 'last-modified' : gotLastModified = true; break;
              }
            }
          }
          // try to fill in any missing header information
          var val;
          val = conn.getContentEncoding();
          if (val != null !gotContentEncoding) this._headers[this._headers.length] = {h:'Content-encoding', v:val};
          val = conn.getContentLength();
          if (val != -1 !gotContentLength) this._headers[this._headers.length] = {h:'Content-length', v:val};
          val = conn.getContentType();
          if (val != null !gotContentType) this._headers[this._headers.length] = {h:'Content-type', v:val};
          val = conn.getDate();
          if (val != 0 !gotDate) this._headers[this._headers.length] = {h:'Date', v:(new Date(val)).toUTCString()};
          val = conn.getExpiration();
          if (val != 0 !gotExpiration) this._headers[this._headers.length] = {h:'Expires', v:(new Date(val)).toUTCString()};
          val = conn.getLastModified();
          if (val != 0 !gotLastModified) this._headers[this._headers.length] = {h:'Last-modified', v:(new Date(val)).toUTCString()};
          // read response data
          var reqdata = '';
          var stream = conn.getInputStream();
          if (stream)
          {
            var reader = new java.io.BufferedReader(new java.io.InputStreamReader(stream, this._getCharset()));
            var line;
            while ((line = reader.readLine()) != null)
            {
              if (this.readyState == 2)
              {
                this.readyState = 3;
                if (this.onreadystatechange)
                {
                  this.onreadystatechange();
                }
              }
              reqdata += line + '\n';
            }
            reader.close();
            this.status = 200;
            this.statusText = 'OK';
            this.responseText = reqdata;
            this.readyState = 4;
            if (this.onreadystatechange)
            {
              this.onreadystatechange();
            }
            if (this.onload)
            {
              this.onload();
            }
          }
          else
          {
            // error
            this.status = 404;
            this.statusText = 'Not Found';
            this.responseText = '';
            this.readyState = 4;
            if (this.onreadystatechange)
            {
              this.onreadystatechange();
            }
            if (this.onerror)
            {
              this.onerror();
            }
          }
        };
      };
    }

    // ActiveXObject emulation
    if (!window.ActiveXObject window.XMLHttpRequest)
    {
      window.ActiveXObject = function(type)
      {
        switch (type.toLowerCase())
        {
          case 'microsoft.xmlhttp':
            case 'msxml2.xmlhttp':
            case 'msxml2.xmlhttp.3.0':
            case 'msxml2.xmlhttp.4.0':
            case 'msxml2.xmlhttp.5.0':
            return new XMLHttpRequest();
        }
        return null;
      };
    }
    点此下载ajax.js
    您可能感兴趣的文章:
    • AJAX客户端说明,XMLHttpRequest对象
    • AJAX中同时发送多个请求XMLHttpRequest对象处理方法
    • ajax 入门基础之 XMLHttpRequest对象总结
    • Ajax xmlHttpRequest的status的值的含义
    • jquery ajax学习笔记2 使用XMLHttpRequest对象的responseXML
    • php中XMLHttpRequest(Ajax)不能设置自定义的Referer的解决方法
    • Ajax通讯原理XMLHttpRequest
    • 如何用ajax来创建一个XMLHttpRequest对象
    • AJAX(XMLHttpRequest.status)状态码
    • 防止jQuery ajax Load使用缓存的方法小结
    • jquery ajaxSubmit 异步提交的简单实现
    • Jquery Ajax方法传值到action的方法
    • 再谈Jquery Ajax方法传递到action(补充)
    • jQuery ajax调用WCF服务实例
    • jquery ajax请求方式与提示用户正在处理请稍等
    • 通过XMLHttpRequest和jQuery实现ajax的几种方式
    上一篇:AJAX入门之XMLHttpRequest慨述
    下一篇:ajax 检测用户名是否被占用
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    XMLHttpRequest of ajax XMLHttpRequest,ajax,XMLHttpRequest,